根据请求ninject登记
-
25-10-2019 - |
题
我的ASP.NET MVC 3应用程序使用ninject和ninject asp.net MVC 3集成。我已经超载了createkernel方法。
现在,我需要以这种方式设置一些每个查询的依赖项:
if (Language == Language.English)
//register English language implementations
else if (Language == Language.Russian)
//register Russain language implementations
我认为Global_Asax的一些特定于请求的方法将是一个不错的选择,并试图访问某些NinightHttpapplicaton属性,以注册每个请求的依赖项。我访问了内核,并获得了过时的警告“不要将Ninjext用作服务定位器”。我究竟做错了什么?怎么做对?
解决方案
要根据某种条件(例如语言)更改实现,您应该使用条件绑定。例如 Bind<IFoo>().To<Foo>().When(ctx => Language == Language.English)
不隶属于 StackOverflow