Регистр Ninject Per запрос
-
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, были бы хорошим местом для и попытались получить доступ к некоторым из свойств Ninjecthttpapppppplicaton для регистрации зависимостей для запроса. Я получил доступ к ядру и получил устаревшее предупреждение: «Не используйте Ninject в качестве локатора обслуживания». Что я делаю не так? Как это сделать правильно?
Решение
Чтобы изменить реализацию на основе какого -либо условия, например, вы должны использовать условные привязки. Например Bind<IFoo>().To<Foo>().When(ctx => Language == Language.English)