我有以下项目的解决方案:
核心/服务/服务接口/基础架构/ Web UI
在基础结构项目中,我有以下文件夹: -数据 -IoC -logging
基础结构项目中的数据文件夹包含DbContext类,repos和UoW类...服务项目需要引用基础结构来访问数据,而基础结构需要引用服务项目,以便IoC容器可以解析它的依赖关系。这会创建一个循环依赖..
解决这个问题的好方法是什么?是否应该有基础设施项目,数据和IoC是否应该成为其中的一部分?
答案 0 :(得分:1)
IoC不是基础架构,它只是将程序实体拼接在一起的一种方式 - 您的业务逻辑,基础架构或服务都不应该有权访问您的IoC容器。容器只能在composition root使用。这往往是您的应用程序初始化的地方。在Web应用程序中,您将在启动时(在Web项目中)使用IoC容器注册所有内容,然后在请求时从容器中解析控制器的实例。其余代码仍然与容器无关。