Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 22nd, 2012  |  syntax: None  |  size: 1.18 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Using Dependency Injection in ASP.NET MVC3 Model Binder
  2. public class UserModelBinder : IModelBinder
  3. {
  4.     //[Inject]
  5.     public UserDataService userData { get; set; }
  6.  
  7.     public object BindModel(
  8.         ControllerContext controllerContext,
  9.         ModelBindingContext bindingContext)
  10.     {
  11.         Guid UserID =
  12.             (Guid)Membership.GetUser().ProviderUserKey;
  13.  
  14.         //userDataService = DependencyResolver.Current
  15.         //    .GetService<UserDataService>();
  16.  
  17.         User user = userDataService.GetUser(UserID);
  18.  
  19.         return user;
  20.     }
  21. }
  22.        
  23. ModelBinders.Binders[typeof(User)] = new UserModelBinder();
  24.        
  25. userDataService = DependencyResolver.Current
  26.     .GetService<UserDataService>();
  27.        
  28. public class UserModelBinder : IModelBinder
  29. {
  30.     public Func<UserDataService> UserData { get; set; }
  31.  
  32.     public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
  33.     {
  34.         Guid UserID = (Guid)Membership.GetUser().ProviderUserKey;
  35.  
  36.         User u = UserData().GetUser(UserID);
  37.  
  38.         return u;
  39.     }
  40. }
  41.        
  42. ModelBinders.Binders[typeof(User)] = new UserModelBinder()
  43. {  
  44.     userData = () => DependencyResolver.Current.GetService<UserDataService>();
  45. }