ASP0016: RequestDelegate から値を返さない
Value | |
---|---|
ルール ID | ASP0016 |
[カテゴリ] | 使用法 |
修正が中断ありか中断なしか | なし |
原因
RequestDelegate の作成に使用されるメソッドは Task<T>
を返します。 RequestDelegate
は、この値を破棄します。
規則の説明
RequestDelegate
を必要とする API に提供された値 Delegate
を返しません。 たとえば、次のサンプルは Task<string>
を返しますが、Task
の string
値は破棄されます。
var app = WebApplication.Create();
app.Use(next =>
{
return new RequestDelegate((HttpContext context) =>
{
return Task.FromResult(""hello world"");
});
});
違反の修正方法
このルールの違反を修正するには、戻り値の型を非ジェネリック Task
に変更するか、デリゲートがルート ハンドラーの場合は戻り値が応答に書き込まれるように Delegate
にキャストします。
どのようなときに警告を抑制するか
この規則による警告は抑制しないでください。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
ASP.NET Core