【问题标题】:Resolving Circular Dependencies in an application with multiple assemblies解决具有多个程序集的应用程序中的循环依赖关系
【发布时间】:2022-01-03 02:52:18
【问题描述】:

在我有多个程序集的应用程序中。

我有一个Class A,它依赖于dll P

对于同一个 A 类,我正在尝试引入一个新的 imported 属性,该属性依赖于 dll Q

但是dll Qdll P 有依赖关系,导致这是一个循环依赖关系。 dll P ->dll Q <-dll P

我已经阅读了很多文章,但仍然在努力寻找解决方案,因为我必须使用这个 imported 属性,它依赖于 dll Q。有关克服此问题的最佳方法的任何建议或建议?一开始甚至有可能吗? 提前致谢!

【问题讨论】:

    标签: c# dll dependency-injection mef circular-dependency


    【解决方案1】:

    解决循环依赖问题的方法是完全回避它。

    鉴于您使用的是 MEF,而不是 IoC/DI 框架,我假设您正在做插件架构。如果不是,请不要使用 MEF,MEF 不是 IoC/DI。

    您希望按如下方式构建您的解决方案:

    Common.Interfaces
        interface IQ { }
    
    Plugin.P
        class P { IQ Q { get; set;} }
    
    Plugin.Q
        class Q : IQ {}
    

    这样,项目 P 或 Q 都不会直接相互依赖。

    【讨论】:

      猜你喜欢
      • 2019-06-04
      • 2014-09-06
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      • 2021-04-25
      • 2012-03-06
      • 2018-04-27
      • 2019-01-12
      相关资源
      最近更新 更多