8

Recentemente ho utilizzato il modello di iniezione delle dipendenze con Autofac come contenitore IoC.C# classe libreria progetto dipendenza avvio bootstrap

Normalmente, lo userei all'interno dell'applicazione principale (Winform, WCF, WPF ecc.).

Attualmente sto imparando a creare un progetto di libreria di classi come framework per i miei sviluppatori peer e tendo ad attenermi al pattern DI poiché mi consente di eseguire il test unitario mentre procedo.

Come configurare il contenitore IoC in un progetto di libreria di classi senza un punto di ingresso?

Devo solo fare qualcosa di simile:

public static void ConfigureLibrary() { 
    //.. Do bootstraping here 
} 

e lasciare che l'applicazione di base per chiamarla quando avviare l'applicazione di base?

In che modo sono state configurate le librerie come i modelli & Enterprise Library o Spring.Net?

+0

Correlato: http://stackoverflow.com/questions/1831455/what-are-the-best-practices-for-class-libraries-using-dependency-injection-for-i – Steven

+0

Correlati: http: // stackoverflow .com/questions/2045904/dependency-inject-di-friendly-library – Steven

+0

Lettura obbligatoria: http://blog.ploeh.dk/2014/05/19/di-friendly-library/ – Steven

risposta

8

Come ha fatto librerie come i modelli & Practices Enterprise Library o Spring.Net configurato?

Ecco an interesting article di Chris Tavares sull'argomento.

+0

Interessante davvero .. Da quello che sono in grado di cogliere * perdonami per essere un principiante *, anche le librerie come EntLib richiedono ancora all'utente di configurare usando una facciata, anche la configurazione è semplice come 'InitializeMyClassLibrary()'. È il caso? –

+0

AFAIK non è il caso. EntLib viene fornito con una configurazione predefinita che può essere utilizzata così com'è. Ci dovrebbe essere una facciata predefinita. – Steven

+0

Vuoi dire qualche genere di punto di ingresso statico? –

0

Come configurare il contenitore IoC in un progetto di libreria di classi senza un punto di ingresso?

In genere l'applicazione deve essere la radice delle registrazioni del servizio. Ma sì, si possono fornire registrazioni predefinite in una libreria. Here è un post sul blog che ho fatto alcuni giorni fa come faccio attualmente io e il mio team.

Problemi correlati