EndpointName-Metadaten werden nicht automatisch festgelegt

Das in .NET 6 RC 1 eingeführte Verhalten zum automatischen Festlegen von IEndpointNameMetadata für Endpunkte wurde zurückgesetzt. IEndpointNameMetadata wird nicht mehr automatisch festgelegt, um Probleme mit doppelten Endpunktnamen zu vermeiden.

Eingeführt in 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 haben. Beispielsweise wurde durch den folgenden Code ein Endpunkt für /foo erstellt, bei dem EndpointName auf GetFoo festgelegt ist.

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

Neues Verhalten

Ab ASP.NET Core 6 RC 2 wird IEndpointNameMetadata nicht mehr automatisch festgelegt. Durch den folgenden Code wird kein IEndpointNameMetadata-Element generiert.

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

Typ des Breaking Changes

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

Grund für die Änderung

Das Verhalten zum automatischen Festlegen von Metadaten für Endpunktnamen war nicht stabil und führte zu Problemen, bei denen derselbe Name für verschiedene Endpunkte festgelegt wurde. Weitere Informationen finden Sie unter dotnet/aspnetcore#36487.

Es wird empfohlen, IEndpointNameMetadata mithilfe der WithName-Erweiterungsmethode manuell festzulegen.

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

Betroffene APIs