Я борюсь с включением инжектора конструктора Ninject в приложении веб-службы. Вот шаги, которые я предпринял (Visual Studio 2013):Ninject не разрешает зависимость (ошибка конструктора без параметров)
1) Создал новый проект с шаблоном «ASP.NET Web Application».
2) Выбрал шаблон «Пустой» приложения на втором этапе мастера создания проекта.
3) На третьем этапе под названием «Добавление папок и основные ссылки на» выбран «Web API»
4) Проект создан, теперь я добавил контроллер типа «Web API 2 Controller - Пустой» , Добавлен следующий код:
using System.Web.Http;
namespace WebApplication1.Controllers
{
public interface IDummy
{
}
public class Dummy : IDummy
{
}
public class DefaultController : ApiController
{
public DefaultController(IDummy dummy)
{
}
[HttpGet]
[Route("")]
public string Index()
{
return "Hello World!";
}
}
}
5) Установленное NuGet пакет: Ninject.Web.WebApi (Ninject интеграция WebApi2), теперь я нашел в других потоках, которые, чтобы сделать его работу с IIS мне нужно установить Ninject .Web.Common.WebHost. После этого в AppStart появился файл NinjectWebCommon.cs. Единственное изменение я сделал для этого файла был в методе RegisterServices:
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IDummy>().To<Dummy>();
}
Теперь, когда я пытаюсь запустить приложение (локально, просто нажав клавишу F5 в Visual Studio), я бы ожидать, чтобы получить строку Hello World в браузере , но вместо этого я получаю печально известную ошибку конструктора без параметров: , что означает, что Ninject почему-то не выполняет свою работу, я думаю. К сожалению, googling для решения до сих пор был бесплодным. Кто-нибудь может намекнуть мне, что мне делать, чтобы сделать эту работу? Заранее спасибо.
ли вы 'WebActivatorEx' установлен? –
Yup, пакет Ninject.Web.Common.WebHost зависит от него. – Caleb9
У вас установлен https://www.nuget.org/packages/Ninject.MVC3/? Думайте, что вам это нужно, так что Ninject знает, как подключить контроллеры. – PeteG