次の方法で共有


ASP0016: RequestDelegate から値を返さない

Value
ルール ID ASP0016
[カテゴリ] 使用法
修正が中断ありか中断なしか なし

原因

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 にキャストします。

どのようなときに警告を抑制するか

この規則による警告は抑制しないでください。