假设我有以下的项目结构:
Application <-> BusinessLogic <-> DataAccessLayer
我已经准备好使用简陋的依赖注入,现在我想介绍一下使用 Unity 进行真正依赖注入的方法。但是,我遇到了一个麻烦:不知道应该把依赖容器和其配置放在何处(我打算从代码中进行配置)。
- DataAccessLayer 需要注册 Context(EF)
- BusinessLogic 需要注册数据仓库(使用 Context)
- Application 需要注册服务(使用数据仓库)
目前,唯一一个使用容器实际实例化类的程序集将是 Application。因此,我得出以下依赖关系图:
- DI 使用 DataAccessLayer
- DI 使用 BusinessLogic
- DI 使用 Application
- Application 使用 DI
由于我在这里有循环引用,所以将 DI 放在 Application 中似乎很合理。但是这样一来,我就必须引用 DataAccessLayer ,而这是我不想创建的一个依赖关系。那么我该如何解决这个问题呢?
Application
)使用 DI 来注册依赖项。 - haim770Application
注册类型,那么我就必须创建对DataAccessLayer
的依赖关系,但是我不想这样做(如果可能的话)。 - Spook