Uso de la inyección de dependencia en ASP.NET MVC3 Model Binder

Estoy trabajando en el sitio web de MVC3, tratando de usar Ninject para resolver mis dependencias. Tengo el siguiente escenario:

public class UserModelBinder : IModelBinder
{
    //[Inject]
    public UserDataService userData { get; set; }

    public object BindModel(
        ControllerContext controllerContext,
        ModelBindingContext bindingContext)
    {
        Guid UserID =
            (Guid)Membership.GetUser().ProviderUserKey;

        //userDataService = DependencyResolver.Current
        //    .GetService<UserDataService>();

        User user = userDataService.GetUser(UserID);

        return user;
    }
}

¿Notaste las líneas de código comentadas?

Yo registro la carpeta enGlobal.asax como

ModelBinders.Binders[typeof(User)] = new UserModelBinder();

Así que realmente no puedo hacer inyección a través de la construcción.

UserDataService Tiene una cadena de dependencias:UserDataService -> UserRepository -> Context. Así que sería bueno usar Ninject aquí.

El problema es, cuando me despido.[Inject] encimauserData declaración, e intenta hacer que Ninject inyecte un objeto como parámetro, no funciona por alguna razón: obtengo excepciones de referencia nulas.

(Será queUserDataService no tiene una interfaz y estoy vinculando el objeto a sí mismo:kernel.Bind<UserDataService>().ToSelf(); ??)

Tengo otra línea comentada en el código:

userDataService = DependencyResolver.Current
    .GetService<UserDataService>();

Cuando esto no se comenta, la configuración funciona, se insertan los objetos correctos, pero ahora dependemos de DependencyResolver y eso no es mucho mejor que deciruserDataService = new UserDataService()

¿Me estoy perdiendo de algo? ¿Hay otra forma de inyectar un objeto como parámetro y no introducir la dependencia en Ninject o DependencyResolver?

Respuestas a la pregunta(3)

Su respuesta a la pregunta