Ich habe Probleme mit der Konstruktion Injektion fehlgeschlagen.Wie zur Fehlerbehebung Bau Injektion mit Ninject
Wenn ich die restful API aufruft, gibt der Dienst die Meldung "Fehler beim Versuch, einen Controller vom Typ 'TasksController' zu erstellen, zurück. Stellen Sie sicher, dass der Controller einen parameterlosen öffentlichen Konstruktor hat."
Die Ursache dieses Problems ist, dass der Web-API-Controller die Klasse aufgrund falscher Parameter im Konstruktor nicht erstellen kann.
Dies ist Ninject Konfiguration
container.Bind<IAddTaskQueryProcessor>().To<AddTaskQueryProcessor>().InRequestScope();
container.Bind<ITaskByIdQueryProcessor>().To<TaskByIdQueryProcessor>().InRequestScope();
container.Bind<IPagedDataRequestFactory>().To<PagedDataRequestFactory>().InSingletonScope();
container.Bind<IAllTasksInquiryProcessor>().To<AllTasksInquiryProcessor>().InRequestScope();
Dies ist ein Konstruktor einer Klasse eines Controllers ist. Die Parameter werden beim Aufrufen des Konstruktors injiziert.
public TasksController(IAddTaskMaintenanceProcessor addTaskMaintenanceProcessor, ITaskByIdInquiryProcessor taskByIdInquiryProcessor,
IUpdateTaskMaintenanceProcessor updateTaskMaintenanceProcessor,
IPagedDataRequestFactory pagedDataRequestFactory,
IAllTasksInquiryProcessor allTasksInquiryProcessor)
{
_addTaskMaintenanceProcessor = addTaskMaintenanceProcessor;
_taskByIdInquiryProcessor = taskByIdInquiryProcessor;
_updateTaskMaintenanceProcessor = updateTaskMaintenanceProcessor;
_pagedDataRequestFactory = pagedDataRequestFactory;
_allTasksInquiryProcessor = allTasksInquiryProcessor;
}
[Environment]
ASP.NET Web API 2.1
ninject 3.2.2
Wie die Parameter in einem Konstruktor zu überprüfen, ist falsch?