Метод не найден при использовании 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 к их новейшим версиям. После обновления это решило проблему.

Я добавлю это как ошибку в перечисленных зависимостях на сайте проектов.

Другие вопросы по тегам