我得到了两个相互交叉引用的类。我想将这些文件编译成单独的dll文件。
文件1:
public class A
{
public B bObj;
public A ()
{
bObj = new B (this);
}
public void TestMethod()
{
}
}
文件2:
public class B
{
public B (A aObj)
{
aObj.TestMethod ();
aObj.bObj.CallMyself ();
}
public void CallMyself()
{
}
}
我希望能够与他们正在处理的其他人共享项目的各个部分。他们需要能够测试它,所以他们必须编译到项目。有没有可以轻松实现自动化的神奇解决方案?解决方案应该适用于任何文件,我知道如何使用第三个程序集解决循环依赖。
正如我所提到的,我知道如何解决这样的情况。我刚刚写了一个令人讨厌的例子,以表明我想创建一个可以处理任何代码的解决方案。
答案 0 :(得分:4)
class B
以删除对A class A
编译A.DLL,具体取决于B class B
如果类的接口没有改变,你可能只能重新编译一个没有另一个的源。
你应该走这条路 - 不。
答案 1 :(得分:1)
简短的回答是不要这样做。在这种情况下,将通用接口放在每个人都可以看到的单独库中是很常见的,这样他们就可以编程到这些接口而不会相互影响,然后将私有东西放在依赖于第一个接口的独立程序集中。
E.g。
// myproject.interfaces.dll
interface IA
{
void Process(IB b);
}
interface IB
{
void Process(IA a);
}
// myproject.A.dll - depends on myproject.interfaces.dll
class A : IA
{
....
}