我的应用程序这样设置:
Web 数据 服务 POCO实体
控制器使用服务(所以它们应该被注入) 服务使用存储库(我假设也应该被注入)
我已经设置好了,以便控制器通过Ninject接收他们需要的服务,但我不确定如何在服务=>存储库中完成此操作。
有人能帮忙吗?
Web 数据 服务 POCO实体
控制器使用服务(所以它们应该被注入) 服务使用存储库(我假设也应该被注入)
我已经设置好了,以便控制器通过Ninject接收他们需要的服务,但我不确定如何在服务=>存储库中完成此操作。
有人能帮忙吗?
Bob有几篇关于使用Ninject和NHibernate实现仓储模式的博客。对于所有其他ORM框架来说,情况基本相同:
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/
只需设置您的服务依赖项以及控制器的依赖项。Ninject将遍历依赖链并解决所有依赖项。
例如,
ProductController
依赖于 IProductService
IProductService
使用 ProductService
实现,它依赖于 IProductRepository
IProductRepository
使用 NHibernateProductRepository
实现,它依赖于 ISession
。
当您的 NinjectControllerFactory
尝试解析 ProductController
时,它看到了对 IProductService
的依赖关系。它将该依赖项解析为 ProductService
,并查看它是否依赖于 IProductRepository
。然后它将继续沿着链路向下解析,直到完全解决参数。
因此,重要的是绑定任何依赖项,而不仅仅是控制器中的依赖项。