DependencyResolver与ControllerFactory

Sib*_*Guy 9 .net asp.net-mvc

ASP.NET MVC 3引入了DependencyResolver,我看到很多文章有多酷.但是等等......与ControllerFactory方法相比有什么不同?对我来说看起来很相似.

lom*_*axx 5

ServiceLocator被设计为一个抽象层,允许您实现自己的ServiceLocator适配器,该适配器确定如何在应用程序中解析服务.一个这样的例子是Windsor服务定位器适配器.

根据Brad Wilson的说法,服务定位器能够解析在服务定位器中注册的控制器:

这是MVC 3的新功能.MVC框架(特别是DefaultControllerFactory类)已更新,尝试使用已注册的服务定位器创建所有控制器实例.

服务定位器也可以在整个框架中使用,以解决ASP.NET MVC框架使用的许多其他依赖项,如ActionFilters,ResultHandlers甚至ViewEngines所需的依赖项.

如果您使控制器的所有实例都可用,对于标准应用程序,您不太可能需要自定义控制器工厂.

但是,如果您需要在控制器实例化之前,期间或之后执行某些特定操作,则可以使用controllerfactory在返回以供框架的其余部分使用之前处理这些特定实现.