将lambda转换为预期的委托?

时间:2019-02-15 10:44:14

标签: c# .net lambda delegates

具有以下代码

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。

0 个答案:

没有答案