DependencyResolver.Current.GetService gibt immer null zurück

8

dieses Tutorial , um Ninject zu verwenden In meiner Asp.net MVC 3-Anwendung muss ich lediglich das Paket über Nuget installieren und Abhängigkeiten konfigurieren.

Befolgen Sie diese Schritte

  

Installieren Sie Paket-Ninject.MVC3

In NinjectMVC3.cs

%Vor%

In Controller

%Vor%

myObject gibt immer null zurück.

Ich habe kernel.Bind<IReCaptchaValidator>().To<ReCaptchaValidate>().InRequestScope() ausprobiert, aber keinen Effekt!

myObject setzt null fort

In diesem Post hier auf StackOverflow war ich hat gesagt, dass wir DependencyResolver.Current.GetService(TYPE) verwenden müssen, um die Instanz eines Objekts abzurufen.

    
ridermansb 10.10.2011, 23:50
quelle

1 Antwort

8

In dem Beitrag, auf den Sie verweisen, wurde Ihnen nicht gesagt, DependencyResolver zu verwenden, nur dass es möglich ist, es zu verwenden. Sie sollten es nicht verwenden, da es ein bekanntes Anti-Pattern ist.

Während die Verwendung des DependencyResolvers direkt funktionieren sollte, sollten Sie es wirklich nicht so machen.

Stattdessen sollten Sie Constructor Injection verwenden, damit Ihre Klasse den Typ als Parameter Ihres Konstruktors übernimmt.

%Vor%

Dann in Ihrer Methode:

%Vor%     
Erik Funkenbusch 11.10.2011, 01:51
quelle