我的实际情况是,我允许在实现自定义参数绑定的API控制器上使用参数绑定进行依赖项注入。
例如,控制器动作可能如下所示:
public async Task<IHttpActionResult> GetByIdAsync(Guid id, ICustomerFacade customerFacade)
当我使用Swashbuckle生成的Swagger UI来探索我的API时,customerFacade
被指定为实际和必需的资源操作参数。
你知道从生成的Swagger UI中排除控制器动作参数的方法吗?
注意:我知道一个解决方法可以是使用构造函数注入注入依赖项,但我仍然希望能够同时进行构造函数和常规方法依赖项注入
我不是肯定的,但我认为应该将依赖项注入控制器构造函数,而不是Get方法。
所以,你的班级会有:
private ICustomerFacade _customerFacade;
public MyController(ICustomerFacade customerFacade)
{
_customerFacade = customerFacade;
}
public async Task<IHttpActionResult> GetByIdAsync(Guid id){
return Ok(_customerFacade.getCustomer(id));
}
除非您希望调用您的api的客户端负责注入customerFacade。。。