Verwenden der Abhängigkeitsinjektion in ASP.NET MVC3 Model Binder

Ich arbeite an der MVC3-Website und versuche, mithilfe von Ninject meine Abhängigkeiten aufzulösen. Ich habe folgendes Szenario:

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;
    }
}

die kommentierten Codezeilen bemerkt?

Ich melde den Binder anGlobal.asax wie

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

Also kann ich nicht wirklich durch die Konstruktion spritzen.

UserDataService hat eine Kette von Abhängigkeiten:UserDataService -> UserRepository -> Context. Es wäre also gut, Ninject hier zu verwenden.

Das Problem ist, wenn ich das Kommentar auskommentiere[Inject] überuserData Deklaration, und versuchen Sie, Ninject zu veranlassen, Objekt als Parameter zu injizieren, funktioniert es aus irgendeinem Grund nicht: Ich erhalte null Referenzausnahmen.

(Könnte es das seinUserDataService hat keine Schnittstelle und ich binde das Objekt an sich selbst:kernel.Bind<UserDataService>().ToSelf(); ??)

Ich habe eine weitere kommentierte Zeile im Code:

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

Wenn dies unkommentiert ist, funktioniert die Einrichtung, ich bekomme korrekte Objekte eingefügt, aber jetzt hängen wir von DependencyResolver ab und das ist nicht viel besser als zu sagenuserDataService = new UserDataService()

Vermisse ich etwas? Gibt es eine andere Möglichkeit, ein Objekt als Parameter einzufügen und keine Abhängigkeit von Ninject oder DependencyResolver einzuführen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage