Alors, laisse supposer que je peux dessiner dans la peinture:Comment gérer ce scénario de résolution DI?
ai dis-je une classe A
qui dépend des objets B
et C
être instanciés, mais C
dépend également d'une instance de B
, et je Je veux que cette instance de B
soit la même que je passe à A
. Comment puis-je accomplir cela?
Maintenant, vous ne l'avez probablement pas compris non plus; donc je vais aller de l'avant et de le transformer en code:
public class A
{
private readonly B b;
private readonly C c;
public A(B b, C c)
{
this.b = b;
this.c = c;
}
}
public class B
{
}
public class C
{
private readonly B b;
public C(B b)
{
this.b = b;
}
}
Sans DI, je le résoudre comme ceci:
var b = new B();
var c = new C(b);
var a = new A(b,c);
Comment puis-je accomplir quelque chose comme ça par DI, proprement? Ce que je veux est assez simple: utiliser la même instance de B
lors de l'instanciation à la fois C
et A
.
Oublié de mentionner que je le veux dans un mode de vie par demande web, pas singleton ou transitoire.
Si vous fournissiez plus de contexte, donnez aux classes des noms plus significatifs, vous obtiendrez une meilleure réponse ... – xandercoded
J'utilise castle, 'A' ->' Service', 'B' ->' Repository', 'C' ->' SupportClass' – bevacqua
Ce que vous nous montrez est clairement DI. Vous voulez savoir comment configurer cela à Castle Windsor? Pouvez-vous mettre à jour votre question avec votre configuration actuelle? – Steven