包装在任务中时如何使隐式转换工作?

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


以上是包装在任务中时如何使隐式转换工作?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>