Итак, мой вопрос: я получил, например, два класса, перекрестные ссылки друг на друга. Я хочу скомпилировать эти файлы для разделения файлов DLL.Есть ли способ скомпилировать несколько файлов C# в несколько assebly с циклической зависимостью?
Файл 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()
{
}
}
Я хочу, чтобы быть в состоянии разделить только части проекта с другими людьми, что они работают. Они должны быть в состоянии проверить это, поэтому они должны скомпилировать проект. Есть ли волшебное решение, которое можно легко автоматизировать? Решение должно работать с любым файлом, я знаю, как разрешить круговую зависимость с третьей сборкой.
EDIT: Как я уже говорил, я знаю, как решить такую ситуацию. Я просто написал неприятный пример, чтобы показать, что я хочу создать решение, которое может иметь дело с любым кодом.
Это не выглядит правильным ... –
Что-то серьезно не так с этой логикой; Это, безусловно, пример проблемы XY. У вас есть неизвестная * проблема *, которая привела вас к решению конструктивного решения *, которое включает в себя круглые ссылки. Вместо того, чтобы спрашивать, как решить * проблему *, вы спросили, как сделать * решение * простым в использовании, за исключением того, что это решение является одним из худших концепций дизайна, которые вы когда-либо могли себе представить. http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378 – Claies
Я согласен с @Claies. Вы должны следовать советам Эшли Фризе о создании интерфейсов для своих классов и заглянуть в [Dependency Injection] (http://en.wikipedia.org/wiki/Dependency_injection). –