不能在包含会导致循环引用的项目中使用类型

时间:2014-02-16 12:16:15

标签: c# .net circular-dependency

我有一个内部有两个项目的解决方案。说Project AProject B。在我的第一个项目中:

namespace MySolution.ProjectA {
  public class ClassA { /* Referencing something in  MySolution.ProjectB ns */ }
}

在我的另一个项目中:

namespace MySolution.ProjectB {
  public class ClassB { /* Referencing something in  MySolution.ProjectA ns */ }
}

ClassA使用ClassB。因此Project A引用Project B

ClassB我需要使用ClassA,因此我需要引用Project A中的Project B,但不能,因为会出现循环引用。如何处理?

有一点要说......

我知道这种情况意味着应用程序设计中的某些内容不正确,但我需要这样做以检查遗留应用程序。

2 个答案:

答案 0 :(得分:3)

循环引用永远不会,所以你做的是从项目A中的项目B中引出你需要的东西并将它放入项目C中。

项目A&然后B可以引用C但C不引用A或B.

答案 1 :(得分:1)

我过去遇到过类似的情况。使用了两种策略:

  1. 让一个项目引用另一个项目的编译版本。 ProjectA引用ProjectB和projectB引用ProjectA.dll。
  2. 让“ClassA”项目包含对“ClassB”的类文件的引用,而不是项目。
  3. 所有道路都会导致丑陋,但这可以用于调试。