Aracılığıyla paylaş


Ara yazılım: Yeni Aşırı yükleme kullan

yeni bir aşırı yüklemesi app.Use kullanıma sunulmuştur. Ara yazılımı çağırır app.Use ancak hiçbir zaman çağırmazsanız next artık derleyici hatası CS0121 alırsınız:

Çağrı şu yöntemler veya özellikler arasında belirsiz: 'UseExtensions.Use(IApplicationBuilder, Func<HttpContext, Func, Task>)' ve 'UseExtensions.Use(IApplicationBuilder, Func<HttpContext, RequestDelegate, Task>)'

Hatayı çözmek için yerine app.Usekullanınapp.Run.

Tartışma için bkz. GitHub sorunu dotnet/aspnetcore#32020.

Sürüm kullanıma sunulmuştur

ASP.NET Core 6.0

Eski davranış

app.Use(async (context, next) =>
{
    await next();
});

veya

app.Use(async (context, next) =>
{
    await SomeAsyncWork();
    // next not called...
});

Yeni davranış

Artık temsilciye next geçirebilirsinizcontext:

app.Use(async (context, next) =>
{
    await next(context);
});

Ara yazılımınız hiçbir zaman çağrısı nextyapmadığında kullanınapp.Run:

app.Run(async (context) =>
{
    await SomeAsyncWork();
    // next never called
});

Değişiklik nedeni

Önceki Use yöntem istek başına iki nesne ayırır. Yeni aşırı yükleme, ara yazılımı çağırma next şeklinize küçük bir değişiklikle bu ayırmaları önler.

Derleme hatası alırsanız bu, temsilciyi next kullanmadan çağırdığınız app.Use anlamına gelir. app.Run hatasını düzeltmek için öğesine geçin.

Etkilenen API’ler

Yok.