【问题标题】:How to fix circular dependency issue?如何解决循环依赖问题?
【发布时间】:2017-06-24 09:30:33
【问题描述】:

我有 3 个类库,示例如下:

  • ApplicationCore(主类库)
  • Application1(添加了对 ApplicationCore 的引用)
  • Application2(添加了对 ApplicationCore 的引用)
  • 我想在应用程序核心类库中使用应用程序 1 功能,而不会出现循环依赖问题。将 Application1 的功能实现到 ApplicationCore 的最佳实践是什么?

    【问题讨论】:

    • 将这些功能移到 ApplicationCore,然后从 Application1 使用它们。

    标签: c# architecture 3-tier


    【解决方案1】:

    将共享功能移至 ApplicationCore 或新的共享类库。

    【讨论】:

      【解决方案2】:

      另一种选择是接口和依赖注入 (DI)。

      • 在 MainClass 库中创建一个接口。 (应用核心)
      • 可能在 ApplicationCore 中有该接口的默认实现。
      • 在 Application1 中,设置 DI 以使用来自 Application1 的接口实现。

      在 Application2 中,它将使用默认实现。

      在 Application1 中,它将使用 Application1 的实现。

      【讨论】:

        猜你喜欢
        • 2019-02-23
        • 1970-01-01
        • 2012-03-15
        • 2016-09-21
        • 2020-06-16
        • 2020-11-12
        相关资源
        最近更新 更多