【问题标题】:Circular Dependencies with Dependency Injection依赖注入的循环依赖
【发布时间】:2014-09-03 23:01:30
【问题描述】:

我有以下项目的解决方案:

核心/服务/服务接口/基础设施/Web UI

在基础设施项目中,我有以下文件夹: -数据 -IOC -记录

Infrastructure 项目中的数据文件夹包含一个 DbContext 类、repos 和一个 UoW 类...服务项目需要引用 Infrastructure 才能访问数据,而 Infrastructure 需要引用 services 项目以便 IoC 容器可以解析它的依赖..这会创建一个循环依赖..

有什么好的方法来解决这个问题?是否应该有一个基础设施项目,数据和 IoC 是否应该成为其中的一部分?

【问题讨论】:

  • 为什么不把 Ioc 放到 services 项目中呢?

标签: asp.net-mvc circular-dependency


【解决方案1】:

IoC 不是基础架构,它只是将程序实体拼接在一起的一种方式 - 您的任何业务逻辑、基础架构或服务都不应访问您的 IoC 容器。该容器只能用于composition root。这往往是您的应用程序被初始化的地方。在 Web 应用程序中,您将在启动时(在 Web 项目中)向 IoC 容器注册所有内容,然后在请求时从容器中解析控制器实例。您的其余代码与容器无关。

【讨论】:

    猜你喜欢
    • 2020-03-14
    • 2018-03-03
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 2014-07-27
    相关资源
    最近更新 更多