Les métadonnées EndpointName ne sont pas définies automatiquement

Le comportement introduit dans .NET 6 RC 1 pour définir IEndpointNameMetadata automatiquement pour les points de terminaison a été rétabli. IEndpointNameMetadata n’est plus défini automatiquement pour éviter les problèmes liés aux noms de points de terminaison en double.

Version introduite

ASP.NET Core 6 RC 2

Comportement précédent

Dans ASP.NET Core 6 RC 1, IEndpointNameMetadata a été automatiquement défini pour les points de terminaison qui référencent un groupe de méthodes. Par exemple, le code suivant a produit un point de terminaison pour /foo avec EndpointName défini sur GetFoo.

app.MapGet("/foo", GetFoo);

Nouveau comportement

À compter de ASP.NET Core 6 RC 2, IEndpointNameMetadata n’est pas défini automatiquement. Le code suivant ne génère pas IEndpointNameMetadata.

app.MapGet("/foo", GetFoo);

Type de changement cassant

Ce changement peut affecter la compatibilité source.

Raison du changement

Le comportement de la définition automatique des métadonnées de nom de point de terminaison n’était pas robuste et a entraîné des problèmes où le même nom a été défini pour différents points de terminaison. Pour plus d’informations, consultez dotnet/aspnetcore#36487.

Nous vous recommandons de définir IEndpointNameMetadata manuellement à l’aide de la méthode d’extension WithName pour définir les métadonnées.

app.MapGet("/foo", GetFoo).WithName("GetFoo");

API affectées

N/A