2

Ninject.MVC3我已经使用 Nuget包将 Ninject 集成到 MVC 4 项目中。我可以看到它App_Start现在包含一个名为 的类NinjectWebCommon,带有一个“引导程序”。按照标准说明,我可以将接口的具体实例注入控制器,调试器会告诉我这是由NinjectDependencyResolver类提供的。

但是:通过查看 Ninject 代码,我无法找到将此类NinjectDependencyResolver设置为IDependencyResolver使用标准DependencyResolver.SetResolver方法的位置。所以我不确定我是否只是无能,或者是否有另一种方式让我上瘾。有人能启发我吗?

4

1 回答 1

2

IDependencyResolver附带 asp.net MVC 框架并允许在控制器和其他组件中实现依赖注入(asp.net MVC 在内部使用它)。

我不会在这里解释好处,但你可以在这里阅读一个很好的介绍

将 IoC 框架(Ninject、Unity、StructureMap...)添加到 MVC 中时,您必须将 Ioc 代码插入本机依赖解析器,并实现IDependencyResolver. DependencyResolver 静态类是注册点,尤其是DependencyResolver.SetResolver(IDependencyResolver resolver)

但是现在很多 Ioc 框架都自带了 MVC 集成包,比如 Ninject.MVC 我们的 StructureMap.MVC。这对我们来说更容易(而且通常更健壮),您并不需要知道它是如何完成的。

快速查看存储库 Ninject.Web.Mvc 中的NinjectMvcHttpApplicationPlugin将向您展示胶水。

于 2013-10-25T12:11:14.990 回答