Metadane endpointName nie są ustawiane automatycznie
Zachowanie wprowadzone w programie .NET 6 RC 1 w celu automatycznego ustawienia IEndpointNameMetadata
punktów końcowych zostało przywrócone. IEndpointNameMetadata
Program nie jest już ustawiany automatycznie, aby uniknąć problemów z zduplikowanymi nazwami punktów końcowych.
Wprowadzona wersja
ASP.NET Core 6 RC 2
Poprzednie zachowanie
W ASP.NET Core 6 RC 1 IEndpointNameMetadata
został automatycznie ustawiony dla punktów końcowych, które odwoływały się do grupy metod. Na przykład poniższy kod wygenerował punkt końcowy dla /foo
elementu z ustawioną wartością EndpointName
GetFoo
.
app.MapGet("/foo", GetFoo);
Nowe zachowanie
Począwszy od ASP.NET Core 6 RC 2, IEndpointNameMetadata
nie jest ustawiany automatycznie. Poniższy kod nie generuje żadnego IEndpointNameMetadata
kodu .
app.MapGet("/foo", GetFoo);
Typ zmiany powodującej niezgodność
Ta zmiana może mieć wpływ na zgodność źródła.
Przyczyna wprowadzenia zmiany
Zachowanie automatycznego ustawiania metadanych nazwy punktu końcowego nie było niezawodne i spowodowało problemy, w których ta sama nazwa została ustawiona dla różnych punktów końcowych. Aby uzyskać więcej informacji, zobacz dotnet/aspnetcore#36487.
Zalecana akcja
Zalecamy ręczne ustawienie IEndpointNameMetadata
przy użyciu WithName
metody rozszerzenia w celu ustawienia metadanych.
app.MapGet("/foo", GetFoo).WithName("GetFoo");
Dotyczy interfejsów API
Nie dotyczy