2016-04-20 26 views
0

我有施工注塑失敗的問題。如何排除使用Ninject進行施工注塑的問題

當我調用Restful API時,服務返回消息「嘗試創建類型爲'TasksController'的控制器時發生錯誤,確保控制器具有無參數公共構造函數。

此問題的原因是由於構造函數中的參數錯誤,Web API控制器無法構造類。

這是Ninject配置

container.Bind<IAddTaskQueryProcessor>().To<AddTaskQueryProcessor>().InRequestScope(); 
container.Bind<ITaskByIdQueryProcessor>().To<TaskByIdQueryProcessor>().InRequestScope(); 
container.Bind<IPagedDataRequestFactory>().To<PagedDataRequestFactory>().InSingletonScope(); 
container.Bind<IAllTasksInquiryProcessor>().To<AllTasksInquiryProcessor>().InRequestScope(); 

這是一類控制器的構造函數。調用構造函數時會注入參數。

public TasksController(IAddTaskMaintenanceProcessor addTaskMaintenanceProcessor, ITaskByIdInquiryProcessor taskByIdInquiryProcessor, 
     IUpdateTaskMaintenanceProcessor updateTaskMaintenanceProcessor, 
     IPagedDataRequestFactory pagedDataRequestFactory, 
     IAllTasksInquiryProcessor allTasksInquiryProcessor) 
    { 
     _addTaskMaintenanceProcessor = addTaskMaintenanceProcessor; 
     _taskByIdInquiryProcessor = taskByIdInquiryProcessor; 
     _updateTaskMaintenanceProcessor = updateTaskMaintenanceProcessor; 
     _pagedDataRequestFactory = pagedDataRequestFactory; 
     _allTasksInquiryProcessor = allTasksInquiryProcessor; 
    } 

[環境]
的ASP.NET Web API 2.1
NInject 3.2.2

如何檢查哪個參數構造函數是錯誤的?

回答

0

我解決了這個問題。在構造函數中的參數被正確注入。但AllTask​​InqueryProcess的構造函數中的參數IAllTask​​QueeryProcess沒有被注入。使ASP.NET引擎無法調用控制器類

public AllTasksInquiryProcessor(IAllTasksQueryProcessor queryProcessor, IAutoMapper autoMapper) 
    { 
     _queryProcessor = queryProcessor; 
     _autoMapper = autoMapper; 
    } 
相關問題