Freigeben über


EndpointName-Metadaten werden nicht automatisch festgelegt.

Verhalten, das in .NET 6 RC 1 eingeführt wurde, um IEndpointNameMetadata automatisch für Endpunkte festzulegen, wurde rückgängig gemacht. IEndpointNameMetadata wird nicht mehr automatisch festgelegt, um Probleme mit doppelten Endpunktnamen zu vermeiden.

Eingeführte Version

ASP.NET Core 6 RC 2

Vorheriges Verhalten

In ASP.NET Core 6 RC 1 wurde IEndpointNameMetadata automatisch für Endpunkte festgelegt, die auf eine Methodengruppe verwiesen. Der folgende Code hat z. B. einen Endpunkt für /foo erstellt, wobei EndpointName auf GetFoo gesetzt wurde.

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

Neues Verhalten

Ab ASP.NET Core 6 RC 2 IEndpointNameMetadata wird nicht automatisch festgelegt. Der folgende Code generiert keine IEndpointNameMetadata.

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

Art der einschneidenden Änderung

Diese Änderung kann sich auf die Quellkompatibilität auswirken.

Grund für Änderung

Das Verhalten der automatischen Einstellung von Endpunktnamenmetadaten war nicht robust und führte zu Problemen, bei denen derselbe Name für verschiedene Endpunkte festgelegt wurde. Weitere Informationen finden Sie unter dotnet/aspnetcore#36487.

Wir empfehlen, dass Sie IEndpointNameMetadata manuell mithilfe der WithName-Erweiterungsmethode festlegen, um die Metadaten festzulegen.

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

Betroffene APIs

Nicht verfügbar