我将尝试以简单的方式进行解释。
我有一个包含 4 个项目的解决方案 (c# 4.0)
- 框架
- 达尔
- 领域
- Web应用程序
所以我的问题是:
框架是配置我的 Unity IoC 的正确位置吗?我想通过代码而不是 xml 进行配置,所以框架需要知道 DAL 的引用,但 DAL 已经知道框架。
我所有的项目都知道框架,那么我在哪里配置我的 IoC?
我将尝试以简单的方式进行解释。
我有一个包含 4 个项目的解决方案 (c# 4.0)
所以我的问题是:
框架是配置我的 Unity IoC 的正确位置吗?我想通过代码而不是 xml 进行配置,所以框架需要知道 DAL 的引用,但 DAL 已经知道框架。
我所有的项目都知道框架,那么我在哪里配置我的 IoC?
应用程序应该在Composition Root中配置,尽可能靠近入口点。在您的情况下,这将是 WebApplication。这是唯一应该引用 Unity 的项目。其他任何项目都不应该有任何对 Unity 的引用。
在组合根中,您应该遵循Register Resolve Release模式。
另请参阅此答案-它谈论的是 Ninject 而不是 Unity,但概念(以及因此的答案)是相同的。