ASP0016:不要从 RequestDelegate 返回值

价值
规则 ID ASP0016
类别 Usage
修复是中断修复还是非中断修复 Non-breaking

原因

创建 RequestDelegate 返回 Task<T> 的方法。 RequestDelegate 丢弃此值。

规则说明

不要将提供给期望RequestDelegate的 API 的值Delegate返回。 例如,以下示例返回Task<string>,其中Taskstring值将被放弃。

var app = WebApplication.Create();
app.Use(next =>
{
    return new RequestDelegate((HttpContext context) =>
    {
        return Task.FromResult(""hello world"");
    });
});

如何修复违规行为

若要修复此规则的冲突,请将返回类型更改为非泛型 Task 类型;如果委托是路由处理程序,则将委托强制转换为 Delegate,以便将返回值写入响应。

何时禁止显示警告

不禁止显示此规则发出的警告。