2

Я пробовал решение в MVC5, Web API 2 and and Ninject, но пакет разбивает мою сборку (System.Web). Я также попробовал пакет «Ninject.MVC3». Когда я исправляю его с помощью «Обновить пакет -установить Microsoft.AspNet.WebApi.WebHost», я получаю сообщение об ошибке:У меня проблемы с Ninject и MVC 5 Web api 2.2

Произошла ошибка при попытке создать контроллер типа ошибки: «AnyController». Удостоверьтесь, что контроллер имеет безкоммертный публичный конструктор.

Я установил, переустановил, удалил все установленные пакеты несколько раз.

Мои NinjectWebCommon.cs ваниль, за исключением следующего:

private static void RegisterServices(IKernel kernel) 
    { 
    kernel.Bind<IMonitoringConfigurationService>() 
    .To<MonitoringConfigurationService>(); 
    } 

Я бы очень признателен за любую помощь

ответ

0

Не уверен, что причина вашей проблемы, поскольку последние версии Ninject являются практически plug-n-play. Убедитесь, что установлены следующие пакеты Nuget. Если у вас есть другие версии, или что-нибудь странное удалить их:

Ninject 
Ninject.MVC5 
Ninject.Web.WebApi 
Ninject.Web.Common (Added by Ninject.Web.WebApi) 
Ninject.Web.Common.WebHost (Added by Ninject.MVC5) 

Все остальное ненужно и должны быть удалены. Последние два пакета устанавливаются в качестве зависимостей, поэтому действительно все, что вам нужно будет установить явно, - Ninject.MVC5 и Ninject.Web.WebApi. Либо установите базовый пакет Ninject.

Как только у вас есть подходящие пакеты, в основном это сводится к вашей конфигурации в NinjectWebCommon.cs. Единственный способ, который вам нужно изменить, - RegisterServices, и там вам нужно будет добавить любые привязки, необходимые вашему проекту. Если вы получаете сообщение об ошибке, требующем конструктора без параметров, это означает, что вы не добавили привязку, необходимую конструктору.

 Смежные вопросы

  • Нет связанных вопросов^_^