具有以下代码
public void SomeMethod<T>(Func<T, Func<IRequest, Task<ActionResult<CommandResponse>>>> action)
where T : ApiController
{
}
[HttpPut()]
public async Task<ActionResult<CommandResponse>> Put(CreatePurchaseOrderCommand request)
{
return null;
}
public class CommandResponse: IResponse
{
}
public class CreatePurchaseOrderCommand : IRequest
{
}
我希望能够将委托传递给SomeMethod,就像这样
SomeMethod<OrdersController>(x => x.Put);
尝试这样做时,我得到了以下两个
“无法将lambda表达式转换为预期的委托类型,因为 块中的某些返回类型不是隐式可转换的 委托返回类型”
'Put'没有重载匹配代表Func
>>
可以做到吗?怎么样?
所有操作将返回Task<ActionResult<CommandResponse>>
,所有RequestObjects将实现IRequest。