Ninject зарегистрироваться по запросу - PullRequest
4 голосов
/ 25 июля 2011

В моем приложении 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 были бы хорошим местоми попытался получить доступ к некоторым свойствам NinjectHttpApplicaton, чтобы зарегистрировать зависимости для каждого запроса.Я получил доступ к ядру и получил устаревшее предупреждение "Не используйте Ninject в качестве локатора службы".Что я делаю неправильно?Как правильно это сделать?

1 Ответ

5 голосов
/ 25 июля 2011

Чтобы изменить реализацию на основе некоторого условия, например языка, вы должны использовать условные привязки. Например. Bind<IFoo>().To<Foo>().When(ctx => Language == Language.English)

...