Имея следующий код
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.