risposta

26

Il download di Ninject2 contiene CommonServiceLocator.NinjectAdapter.dll (nella cartella "estensioni" del file zip). Aggiungi questa DLL e lo Ninject.dll al tuo progetto.

nel percorso di avvio dell'applicazione (dopo la configurazione del kernel Ninject), è possibile utilizzare il seguente codice:

IKernel ninject = ...; 

var locator = new NinjectServiceLocator(ninject); 

ServiceLocator.SetLocatorProvider(() => locator); 

Si prega di notare che il servizio Locator comune (CSL) è una libreria che fornisce un'astrazione su contenitori IoC e contiene una facciata statica (implementando il pattern Locator di servizio). È un'interfaccia comune che gli sviluppatori possono utilizzare per prevenire a seconda dell'implementazione IoC specifica. Il CSL è particolarmente utile per gli sviluppatori di framework. Gli sviluppatori di applicazioni sono migliori di utilizzare il modello di dipendenza (DI). Quando viene utilizzato correttamente, non è necessario utilizzare CSL in un'applicazione. Mentre il CSL è più adatto allo sviluppo di framework, anche lì trovo discutibile l'uso del CSL. Credo che il più delle volte l'uso di tale interfaccia comune possa essere rimosso con una progettazione adeguata.

+0

Cosa fa CommonServiceLocator? – Chev

+0

Gotcha, grazie per le informazioni. Sono d'accordo con te. – Chev