Ninject registre par demande
-
25-10-2019 - |
Question
Mon ASP.NET MVC 3 application utilise Ninject et Ninject intégration ASP.NET MVC 3. J'ai surchargé méthode CreateKernel.
Maintenant, je dois définir certaines dépendances par requête de cette façon:
if (Language == Language.English)
//register English language implementations
else if (Language == Language.Russian)
//register Russain language implementations
Je thougt certaines des méthodes spécifiques de demande Global_asax serait un endroit agréable et essayé d'accéder à certaines propriétés NinjectHttpApplicaton pour enregistrer les dépendances par demande. J'ai accédé noyau et obtenu avertissement obsolète « Ne pas utiliser Ninject comme Service de localisation ». Qu'est-ce que je fais mal? Comment faire droit?
La solution
Pour modifier la mise en œuvre en fonction de certaines conditions comme la langue, vous devez utiliser les liaisons conditionnelles. Par exemple. Bind<IFoo>().To<Foo>().When(ctx => Language == Language.English)