Lassen Sie uns sagen, dass ich die folgenden Klassen:Resolve-Abhängigkeit mit dem Parameter
class A
{
// reference to B
private B _b;
// constructor for A
public A(B b)
{
_b = b;
}
}
class B
{
private A _a;
// constructor for B
public B()
{
// initialize A and give it a reference on self
a = new A(this);
}
}
Wie ersetze ich die manuelle Initialisierung von A, mit Dependency Injection, A Geräte unter Berücksichtigung entsprechender Schnittstelle IA, und ich habe die entsprechende Bindung in meinem ninject Konfiguration:
.Bind<IA>().To<A>().InTransientScope();
Alle Abhilfe willkommen :) ist
PS Es ist eine WPF-Anwendung.
Bind IB IA automatisch A. nach B Refactoring vor Bindung sollte es beheben - Es hängt davon ab, was IOC Sie verwenden. –
Und Edit-Konstruktor von A, zu öffentlichen A (IB b) statt B –
Sie sollten die zyklische Abhängigkeit durch Extrahieren geteilter Logik aus B oder A in eine neue Klasse C brechen. Sie injizieren C in beide A und B. – Steven