Ninject registrarsi per richiesta
-
25-10-2019 - |
Domanda
Il mio ASP.NET MVC 3 usi applicativi Ninject e Ninject ASP.NET MVC 3 integrazione. Ho sovraccaricato metodo CreateKernel.
Ora ho bisogno di impostare alcune dipendenze per query in questo modo:
if (Language == Language.English)
//register English language implementations
else if (Language == Language.Russian)
//register Russain language implementations
I thougt alcuni dei metodi di richiesta specifica di Global_asax sarebbe un bel posto e ha cercato di accedere ad alcune delle proprietà NinjectHttpApplicaton per registrare le dipendenze per richiesta. Ho acceduto kernel e ottenuto avvertimento obsolete "Non utilizzare Ninject come servizio di individuazione". Che cosa sto facendo di sbagliato? Come per farlo bene?
Soluzione
Per cambiare l'attuazione sulla base di alcune condizioni come il linguaggio si dovrebbe usare attacchi condizionali. Per esempio. Bind<IFoo>().To<Foo>().When(ctx => Language == Language.English)