包装在任务中时如何使隐式转换工作?
c#
这是我的代码。我无法返回Task<OkObjectResult>。我不想将返回类型转换为更具体的类型,例如Task<OkObjectResult>它会阻止我返回其他类型的结果,例如Task<BadRequestObjectResult>我无法更改方法的签名。这是 MediatR 的IRequestHandler
我该怎么做才能让它发挥作用?
public class Handler : IRequestHandler<Request, ActionResult>
{
public Task<ActionResult> Handle(Request request, CancellationToken cancellationToken)
{
Task.FromResult(new OkObjectResult(new Response { IsHealthy = true }));
}
}
回答
FromResult 是一个泛型方法,所以你可以指定基类型作为它的泛型参数:
return Task.FromResult<ActionResult>(new OkObjectResult(new Response { IsHealthy = true }));