我应该如何在多项目mvc应用程序中使用ninject?

时间:2011-02-07 04:33:01

标签: asp.net-mvc ninject

我的应用就是这样设置的 卷筒纸 数据 服务 POCO实体

控制器使用服务(因此应注入) 服务使用存储库(我假设也应注入)

我已将此设置为已设置,以便控制器通过Ninject接收所需的服务,但我不知道如何使用services =>存储库完成此操作

对此有何帮助?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您可以使用ninject.web.mvc扩展程序。它包含一个示例应用程序,说明如何在Global.asax中注册容器。

答案 2 :(得分:-1)

只需设置服务的依赖关系以及控制器的依赖关系。 Ninject将遍历依赖链并解决所有这些问题。

例如,

ProductController依赖于IProductService IProductServiceProductService实施,该IProductRepository依赖于IProductRepository NHibernateProductRepository使用ISession实施,NinjectControllerFactory依赖于ProductController

当您IProductService尝试解析ProductService时,它会看到IProductRepository的依赖关系。它将该依赖项解析为{{1}},并发现它依赖于{{1}}。它将继续沿着链条继续下去,直到它能完全解决争论。

因此,重要的部分是绑定任何依赖项,而不仅仅是Controller中的依赖项。