Ninject register per request
-
25-10-2019 - |
문제
My ASP.NET MVC 3 application uses Ninject and Ninject ASP.NET MVC 3 integration. I have overloaded CreateKernel method.
Now I need to set some dependencies per query in this way:
if (Language == Language.English)
//register English language implementations
else if (Language == Language.Russian)
//register Russain language implementations
I thougt some of Request-specific methods of Global_asax would be a nice place for and tried to access some of NinjectHttpApplicaton properties to register dependencies per request. I accessed Kernel and got obsolete warning "Don't use Ninject as Service locator". What am I doing wrong? How to do it right?
해결책
To change the implementation based on some condition like language you should use conditional bindings. E.g. Bind<IFoo>().To<Foo>().When(ctx => Language == Language.English)
제휴하지 않습니다 StackOverflow