Поделиться через


ASP0016: не возвращайте значение из RequestDelegate

Ценность
Идентификатор правила ASP0016
Категория Использование
Исправление является разрушающим или неразрушающим. Неразрывный

Причина

Метод, используемый для создания RequestDelegate, возвращает Task<T>. RequestDelegate отменяет это значение.

Описание правила

Не возвращайте значение Delegate, если API ожидает RequestDelegate. Например, в следующем примере возвращается Task<string>, где будет отменено значение string из Task.

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

Устранение нарушений

Чтобы устранить нарушение этого правила, измените тип возвращаемого значения на не универсальный Task или, если делегат является обработчиком маршрутов, приведите его к типу Delegate, чтобы возвращаемое значение было записано в ответ.

Когда следует подавлять предупреждения

Не подавляйте предупреждение, вызванное этим правилом.