Вам необходимо создать дилерский класс (или интерфейс), содержащий ссылку на оба класса, которые вы используете. Вы должны использовать этот дилерский класс (или интерфейс), а не каждый эталонный класс, который вы пытались использовать ранее.
Объясняя решение:
Рассмотрим 3 класса следующим образом:
public Class A {
public Method CommonMethod(){
//Some implementation...
}
Method C(){
//CommonMethod form class B are using here
B obj = new B();
B.CommonMethod();
}
}
public Class B {
public Method CommonMethod(){
//Some implementation...
}
Method D(){
//CommonMethod form class A are using here
A obj = new A();
A.CommonMethod();
}
}
public Class DealerClass {
private readonly A _inctanceA;
private readonly B _inctanceB;
//Cunstructor method of the class
DealerClass(A inctanceA, B inctanceB){
_inctanceA = inctanceA;
_inctanceB = inctanceB;
}
//Using CommonMethod of class A
public UsingCommonMethodA(){
_inctanceA.CommonMethod();
}
//Using CommonMethod of class B
public UsingCommonMethodB(){
_inctanceB.CommonMethod();
}
}
Таким образом, согласно этому решению вы должны использовать методы других классов, которые имеют круговую зависимость друг от друга в DealerClass
.