依赖解析器 vs 控制器工厂

9

ASP.NET MVC 3引入了DependencyResolver,我看到很多文章都称它非常酷炫。但等等,与ControllerFactory方法相比有什么不同呢?在我看来两者非常相似。

1个回答

5
ServiceLocator设计为一个抽象层,允许您实现自己的ServiceLocator Adapter来确定应用程序中服务的解析方式。其中一个例子是Windsor Service Locator Adapter
服务定位器有能力根据Brad Wilson解析在服务定位器中注册的控制器:
引用:

这是MVC 3的新功能。 MVC框架(具体来说是DefaultControllerFactory类)已更新为尝试使用注册的服务定位器创建所有控制器实例。

服务定位器还可以在整个框架中用于解析ASP.NET MVC框架使用的许多其他依赖项,例如ActionFilters、ResultHandlers甚至ViewEngines所需的依赖项。
如果将所有控制器实例都可用于标准应用程序,则不太可能需要自定义控制器工厂。
然而,如果您需要在控制器实例化之前、期间或之后执行特定操作,您可以使用控制器工厂来处理这些具体实现,以便在框架的其余部分使用之前返回。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接