我的应用就是这样设置的 卷筒纸 数据 服务 POCO实体
控制器使用服务(因此应注入) 服务使用存储库(我假设也应注入)
我已将此设置为已设置,以便控制器通过Ninject接收所需的服务,但我不知道如何使用services =>存储库完成此操作
对此有何帮助?
答案 0 :(得分:1)
Bob有几个关于使用Ninject和NHibernate的存储库模式的博客。对于所有其他OR Mappers来说几乎都是一样的:
http://blog.bobcravens.com/2010/06/the-repository-pattern-with-linq-to-fluent-nhibernate-and-mysql/
http://blog.bobcravens.com/2010/07/using-nhibernate-in-asp-net-mvc/
http://blog.bobcravens.com/2010/09/the-repository-pattern-part-2/
答案 1 :(得分:1)
您可以使用ninject.web.mvc扩展程序。它包含一个示例应用程序,说明如何在Global.asax
中注册容器。
答案 2 :(得分:-1)
只需设置服务的依赖关系以及控制器的依赖关系。 Ninject将遍历依赖链并解决所有这些问题。
例如,
ProductController
依赖于IProductService
IProductService
由ProductService
实施,该IProductRepository
依赖于IProductRepository
NHibernateProductRepository
使用ISession
实施,NinjectControllerFactory
依赖于ProductController
。
当您IProductService
尝试解析ProductService
时,它会看到IProductRepository
的依赖关系。它将该依赖项解析为{{1}},并发现它依赖于{{1}}。它将继续沿着链条继续下去,直到它能完全解决争论。
因此,重要的部分是绑定任何依赖项,而不仅仅是Controller中的依赖项。