Метод не найден при использовании LightInject с MVC5 и.Net 4.5
При настройке LightInject для контроллера MVC я получаю сообщение об ошибке при вызове container.EnableMvc();
в настройке инжектора.
Ошибка:
Метод не найден: 'Void LightInject.WebContainerExtensions.EnablePerWebRequestScope(LightInject.IServiceContainer)'
Источник:
public static void Register() {
var container = new ServiceContainer();
container.ScopeManagerProvider = new PerLogicalCallContextScopeManagerProvider();
WebContainerExtensions.EnablePerWebRequestScope(container);
container.RegisterControllers();
container.Register<ISomeClass, SomeClass>();
container.EnableMvc();
}
Дополнительная информация:
- Я запускаю код локально через Visual Studio
- Проект 4.5
- Моя ОС - Windows 10 (framework 4.5)
В прошлом, когда я настраивал LightInject, я устанавливал время жизни области видимости вручную, но с тех пор документация для общих настроек и конкретных примеров MVC изменилась. Я наткнулся на один поток, в котором упоминалось, что это может быть проблемой, если не включать LightInject.Web в качестве dep, но я вижу его в списке как dep для LightInject.MVC и в списке ссылок в проекте.
Есть ли другие шаги, которые я могу предпринять, чтобы вручную настроить время жизни или иным образом проверить, доступен ли этот метод перед включением MVC?
1 ответ
Проблема заключалась в том, что я установил LightInject.MVC с NuGet. Это перечисляет его зависимости как:
LightInject.Web (> = 1.0.0.4)
LightInject (> = 3.0.1.7)
После того, как я исчерпал, это проблема с версиями.Net 4.5 и возможные проблемы с асинхронностью. Я решил вручную обновить оба LightInject.Web
а также LightInject
к их новейшим версиям. После обновления это решило проблему.
Я добавлю это как ошибку в перечисленных зависимостях на сайте проектов.