Middleware: nueva sobrecarga de uso
Se ha introducido una nueva sobrecarga de app.Use
. Si llama a app.Use
pero nunca llama al middleware next
, ahora obtendrá el error CS0121 del compilador:
La llamada es ambigua entre los métodos o propiedades siguientes: "UseExtensions.Use(IApplicationBuilder, Func<HttpContext, Func, Task>)" y "UseExtensions.Use(IApplicationBuilder, Func<HttpContext, RequestDelegate, Task>)"
Para resolver el error, use app.Run
en lugar de app.Use
.
Para obtener información, vea la incidencia dotnet/aspnetcore#32020 de GitHub.
Versión introducida
ASP.NET Core 6.0
Comportamiento anterior
app.Use(async (context, next) =>
{
await next();
});
o
app.Use(async (context, next) =>
{
await SomeAsyncWork();
// next not called...
});
Comportamiento nuevo
Ahora puede pasar context
al delegado next
:
app.Use(async (context, next) =>
{
await next(context);
});
Use app.Run
cuando el middleware nunca llame a next
:
app.Run(async (context) =>
{
await SomeAsyncWork();
// next never called
});
Motivo del cambio
El método Use
anterior asigna dos objetos por solicitud. La sobrecarga nueva evita estas asignaciones con un pequeño cambio en la forma de invocar el middleware next
.
Acción recomendada
Si recibe un error de compilación, significa que está llamando a app.Use
sin usar el delegado next
. Cambie a app.Run
para corregir el error.
API afectadas
Ninguno.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de