Intergiciel : surcharge de Nouvelle utilisation
Une nouvelle surcharge de app.Use
a été introduite. Si vous appelez app.Use
mais que vous n’appelez jamais l’intergiciel next
, vous obtenez maintenant l’erreur du compilateur CS0121 :
L’appel est ambigu entre les méthodes ou propriétés suivantes : 'UseExtensions.Use(IApplicationBuilder, Func<HttpContext, Func, Task>)' and 'UseExtensions.Use(IApplicationBuilder, Func<HttpContext, RequestDelegate, Task>)'
Pour résoudre l’erreur, utilisez app.Run
au lieu de app.Use
.
Pour plus d’informations, consultez le problème GitHub dotnet/aspnetcore#32020.
Version introduite
ASP.NET Core 6.0
Ancien comportement
app.Use(async (context, next) =>
{
await next();
});
ou
app.Use(async (context, next) =>
{
await SomeAsyncWork();
// next not called...
});
Nouveau comportement
Vous pouvez maintenant passer context
au délégué next
:
app.Use(async (context, next) =>
{
await next(context);
});
Utilisez app.Run
quand votre intergiciel n’appelle jamais next
:
app.Run(async (context) =>
{
await SomeAsyncWork();
// next never called
});
Raison du changement
La méthode Use
précédente alloue deux objets par requête. La nouvelle surcharge évite ces allocations avec une petite modification de la façon dont vous appelez l’intergiciel next
.
Action recommandée
Si vous obtenez une erreur de compilation, cela signifie que vous appelez app.Use
sans utiliser le délégué next
. Basculez vers app.Run
pour corriger l’erreur.
API affectées
Aucun.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour