我的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)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top