Disons que j'ai les classes suivantes:Résoudre la dépendance avec le paramètre
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);
}
}
Comment puis-je remplacer l'initialisation manuelle de A, avec l'injection de dépendance, en considérant une implémente l'interface IA, et je correspondant la liaison correspondante dans mon configuration ninject:
.Bind<IA>().To<A>().InTransientScope();
Toute solution de contournement est :) Bienvenue
PS C'est une application WPF.
Bind IB à B avant la liaison IA A. Il devrait résoudre automatiquement - Cela dépend de ce que vous utilisez. –
Et Edit constructeur de A, à public A (IB b) au lieu de B –
Vous devez rompre la dépendance cyclique en extrayant la logique partagée hors de B ou A dans une nouvelle classe C. Vous injectez C dans A et B. – Steven