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, и там вам нужно будет добавить любые привязки, необходимые вашему проекту. Если вы получаете сообщение об ошибке, требующем конструктора без параметров, это означает, что вы не добавили привязку, необходимую конструктору.