DefaultControllerFactory vs IDependencyResolver

时间:2012-12-20 07:23:37

标签: asp.net-mvc asp.net-mvc-3 dependency-injection inversion-of-control

我有一点误解:当我们实现IDependencyResolver时,这意味着我们可以为项目中的每个部分使用DI。所以,即使我不从DefaultControllerFactory继承,我可以构建控制器重新依赖依赖项?

编辑:我建议您浏览所有这些 Brad Wilson's posts this post 也很有用

1 个答案:

答案 0 :(得分:6)

先说一下。你不能从接口继承(IDependencyResolver),但我认为你的意思是实现。

简而言之,您可以选择使用其中之一,也不会同时使用两者。因此,如果您设置了解析器,则无需拥有控制器工厂,反之亦然。

我只在mvc中使用了带有castle-windsor的DefaultControllerFactory。如果你使用的是castle-windsor,你需要警惕使用IDependencyResolver的一个松散的结局,有no release method但是可能有办法解决这个问题。

使用其他框架,例如ninjectunity IDependencyResolver有时更可取。