Sono nuovo di IoC e sto giocando con Unity. Supponiamo che tu abbia una soluzione con progetti "n" e tu voglia usare Unity per registrare e risolvere le dipendenze. Diciamo che la tua radice composizione è nel progetto a. Supponiamo che tu abbia i seguenti progetti nella soluzione.Come gestite le dipendenze "profonde" con IoC e DI?
un b c d
Diciamo un dipende qualcosa in b, b dipende da qualcosa in c e c dipende da qualcosa in d
Ho visto come si u possibile utilizzare l'iniezione di costruzione per risolvere il a => b dipendenza, ma io sono bloccato su come di B dipendenza c può essere risolto senza l'accesso al contenitore che è stato configurato e creato nel progetto un.
Qual è l'approccio per la risoluzione delle dipendenze nidificate? Esiste un dibattito/blog/esempio che risolva la risoluzione delle dipendenze profonde?
possibile duplicato di [Test unità e iniezione dipendenza con dipendenze profondamente nidificate] (http://stackoverflow.com/questions/4147018/unit-testing-and-dependency-injection-with-deeply-nested-dependencies) –
basato sul possibile duplicato collegato, se sono in b e ho bisogno di un'istanza di c, chiederei al contenitore di risolvere l'istanza? es .: C c = container.resolve(); e se sono in C, seguo lo stesso schema ... questo richiederebbe a tutti i progetti di avere accesso al contenitore ... È un approccio desiderabile? –
jparram
No, solo il progetto di livello più alto (un'applicazione o un sito Web) deve fare riferimento a un contenitore. Gli strati inferiori non dovrebbero nemmeno sapere di dipendenze concrete. In altre parole, all'interno di C non dovrebbe mai essere necessario risolvere un'istanza concreta di una classe da D. Ha senso? –