Метод не найден при использовании 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 (фреймворк 4.5)

В прошлом, когда я устанавливал LightInject, я устанавливал время жизни области вручную, но документация по общей настройке и конкретным примерам MVC с тех пор изменилась. Я наткнулся на одну ветку, в которой упоминалось, что это может быть проблемой, если не включать LightInject.Web в качестве dep, но я вижу, что он указан как dep для LightInject.MVC и в списке ссылок в проекте.

Есть ли какие-либо другие шаги, которые я могу предпринять, чтобы вручную настроить время жизни или иным образом проверить, доступен ли этот метод перед включением MVC?


person QueueHammer    schedule 21.09.2016    source источник
comment
Помогает ли это... github.com/seesharper/LightInject/issues/170?   -  person Luke    schedule 21.09.2016
comment
Я добавил это в код, но все равно получаю ту же ошибку.   -  person QueueHammer    schedule 21.09.2016


Ответы (1)


Проблема здесь в том, что я установил LightInject.MVC с NuGet. Он перечисляет его зависимости как:

LightInject.Web (>= 1.0.0.4)
LightInject (>= 3.0.1.7)

После того, как я исчерпал это, это проблема с версиями .Net 4.5 и возможные проблемы с асинхронностью. Я решил вручную обновить LightInject.Web и LightInject до их новейших версий. После обновления проблема решилась.

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

person QueueHammer    schedule 21.09.2016