DependencyResolver vs. ControllerFactory

9

ASP.NET MVC 3 eingeführt DependencyResolver und ich sah eine Menge Artikel, wie cool es ist. Aber warte ... was ist der Unterschied zu ControllerFactory Ansatz? Sieht für mich ziemlich ähnlich aus.

    
SiberianGuy 24.07.2011, 23:25
quelle

1 Antwort

5

Der ServiceLocator ist als eine Abstraktionsschicht konzipiert, mit der Sie Ihren eigenen ServiceLocator-Adapter implementieren können, der festlegt, wie Dienste in Ihren Anwendungen gelöst werden. Ein solches Beispiel ist der Windsor Service Locator-Adapter .

Der Service Locator kann Controller auflösen, die mit dem Service Locator registriert wurden, gemäß Brad Wilson :

  

Dies ist eine neue Funktion für MVC 3. Das MVC-Framework (speziell das   DefaultControllerFactory-Klasse) wurde aktualisiert, um zu versuchen, zu erstellen   alle Controller-Instanzen mit dem registrierten Service-Locator.

Der Service Locator kann auch im gesamten Framework verwendet werden, um viele andere Abhängigkeiten zu beheben, die das ASP.NET MVC-Framework verwendet, wie Abhängigkeiten, die von ActionFilters, ResultHandlers und sogar ViewEngines benötigt werden.

Wenn Sie alle Instanzen Ihrer Controller verfügbar machen, ist es für eine Standard-App höchst unwahrscheinlich, dass Sie eine benutzerdefinierte Controller-Factory benötigen.

Wenn Sie jedoch vor, während oder nach der Instanziierung Ihres Controllers etwas Bestimmtes tun müssen, können Sie die controllerfactory verwenden, um sich um diese speziellen Implementierungen zu kümmern, bevor sie für den Rest des Frameworks zurückgegeben werden.

    
lomaxx 25.07.2011, 00:32
quelle

Tags und Links