我已将另一个项目“xml”添加到我的项目“synchronise”中。
因此 program.cs(在 xml 项目中)运行 getDetails(),它在同步项目中运行 FectchDetails() 并将结果作为对象返回给 xml/getDetails()。
如果 Synchronise/FecthDetails() 发生错误,我想重新运行 xml/getDetails()。
我试过 xml.getDetails,但它说它不存在,因为它没有引用项目,所以我尝试将 xml 项目添加到 synchroinse,但它告诉我我不能这样做,因为它会导致循环依赖。 ...我该如何解决这个问题
谢谢
最佳答案
基本上,您有一个项目 X 依赖于项目 Y (X --> Y) ,项目 Y 依赖于项目 X (Y --> X) .
换句话说,类似于:( X <---> Y)
这种情况意味着编译器不知道先编译什么,因此报错。
要解决此问题,请寻找可从一个或两个项目中移出的通用事物/逻辑片段,并创建可在其他两个项目之前构建的第三个项目。
将所有常见的东西放在这个新项目中,你应该没问题;你的依赖关系应该如下所示,如果先编译 X 或 Y 并不重要,只要 Z 在它们之前编译:
( X --> Z <-- Y )
关于c# - 如何解决循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21853067/