正在解析具有多个程序集的应用程序中的循环依赖项



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

我有一个Class A,它与dll P有依赖关系。

对于同一个类A,我试图引入一个新的导入的属性,该属性具有对dll Q的依赖关系。

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

我读了很多文章,但仍然很难找到解决方案,因为我必须使用导入的属性,该属性依赖于dll Q。关于克服这个问题的最佳方法,有什么建议或建议吗?这可能吗?提前感谢!

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

假设您使用的是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都不直接相互依赖。

最新更新