我正在尝试通过一本书在WebApi中开发一个应用程序。这是一个简单的应用程序,但每当我使用fiddler测试此应用程序时,它都会抛出错误 - {“消息”:“尝试创建'TasksController'类型的控制器时发生错误。确保控制器具有无参数公共构造函数。“}。我正在使用ninject进行依赖注入。以下是我的一些代码:
public class NinjectConfigurator
{
public void Configure(IKernel container)
{
AddBindings(container);
}
private void AddBindings(IKernel container)
{
ConfigureLog4net(container);
ConfigureNHibernate(container);
ConfigureUserSession(container);
ConfigureAutoMapper(container);
container.Bind<IDateTime>().To<DateTimeAdapter>().InSingletonScope();
container.Bind<IAddTaskQueryProcessor>().To<IAddTaskQueryProcessor>().InRequestScope();
container.Bind<IAddTaskMaintenanceProcessor>().To<AddTaskMaintenanceProcessor>().InRequestScope();
}
}
public class TasksController : ApiController
{
private readonly IAddTaskMaintenanceProcessor _addTaskMaintenanceProcessor;
//public TasksController() { }
public TasksController(IAddTaskMaintenanceProcessor addTaskMaintenanceProcessor)
{
_addTaskMaintenanceProcessor = addTaskMaintenanceProcessor;
}
[Route("", Name="AddTaskRoute")]
[HttpPost]
public Task AddTask(HttpRequestMessage requestMessage, NewTask newTask)
{
var task = _addTaskMaintenanceProcessor.AddTask(newTask);
return task;
}
}
我不知道为什么我会收到错误。我遵循了本书的所有指示。请帮忙!!
答案 0 :(得分:0)
代码 - container.Bind()。To()是接口的绑定接口,这就是问题。当我将接口绑定到实现时,问题就消失了。新代码是container.Bind()。To()。再次感谢您的帮助。这是一个错字。