Répondre

26

Le téléchargement Ninject2 contient un CommonServiceLocator.NinjectAdapter.dll (dans le dossier 'extensions' du fichier zip). Ajoutez cette DLL et le Ninject.dll à votre projet.

Dans le chemin de démarrage de votre application (après la configuration du noyau Ninject), vous pouvez utiliser le code suivant:

IKernel ninject = ...; 

var locator = new NinjectServiceLocator(ninject); 

ServiceLocator.SetLocatorProvider(() => locator); 

S'il vous plaît noter que le service commun Locator (CSL) est une bibliothèque qui fournit une abstraction sur les conteneurs IoC et contient une façade statique (implémentation du modèle Service Locator). C'est une interface commune que les développeurs peuvent utiliser pour éviter de dépendre d'une implémentation spécifique de l'IoC. Le CSL est particulièrement utile pour les développeurs de framework. Les développeurs d'applications préfèrent utiliser le modèle d'injection de dépendance (DI). Lorsque DI est utilisé correctement, il n'est pas nécessaire d'utiliser le CSL dans une application. Alors que le CSL est plus adapté au développement de frameworks, même là je trouve l'utilisation de la CSL discutable. En croyant que la plupart du temps l'utilisation d'une telle interface commune peut être supprimée en ayant une conception appropriée.

+0

Que CommonServiceLocator faire? – Chev

+0

Gotcha, merci pour l'info. Je suis d'accord avec toi. – Chev