DefaultControllerFactory vs IDependencyResolver

Ale*_*voi 8 asp.net-mvc dependency-injection inversion-of-control asp.net-mvc-3

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

编辑:我建议看看通过这些所有Brad Wilson的帖子
也是这个职位是非常有用的

dov*_*ove 6

首先是Pedant注意.你不能从接口继承(IDependencyResolver),但我认为你的意思是实现.

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

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

对于其他框架,例如ninjectunity, IDependencyResolver有时更可取.