Преобразование лямбды в намеченный делегат? - PullRequest
0 голосов
/ 15 февраля 2019

Имея следующий код

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);

При попытке сделать это, я получаюследующие два

"Невозможно преобразовать лямбда-выражение в предполагаемый тип делегата, поскольку некоторые из возвращаемых типов в блоке неявно не преобразуются в возвращаемый тип делегата"


Никаких перегрузок для совпадений 'Put' делегат Func >>

Можно ли это сделать?Как?

Все действия вернут Task<ActionResult<CommandResponse>>, и все объекты RequestObject будут реализовывать IRequest.

...