Sdílet prostřednictvím


Metadata endpointName se nenastaví automaticky

Chování, které bylo zavedeno v .NET 6 RC 1 pro automatické nastavení IEndpointNameMetadata koncových bodů, bylo vráceno. IEndpointNameMetadata už se nenastavuje automaticky, aby nedocházelo k problémům s duplicitními názvy koncových bodů.

Zavedená verze

ASP.NET Core 6 RC 2

Předchozí chování

V ASP.NET Core 6 RC 1 se pro koncové body, na které odkazuje skupina metod, IEndpointNameMetadata automaticky nastavila. Například následující kód vytvořil koncový bod pro /foo s nastaveným GetFooparametrem EndpointName .

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

Nové chování

Počínaje ASP.NET Core 6 RC 2 IEndpointNameMetadata se nenastaví automaticky. Následující kód negeneruje žádné IEndpointNameMetadata.

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

Typ zásadní změny

Tato změna může mít vliv na kompatibilitu zdroje.

Důvod změny

Chování automatického nastavení metadat názvu koncového bodu nebylo robustní a vedlo k problémům, kdy byl pro různé koncové body nastavený stejný název. Další informace najdete v tématu dotnet/aspnetcore#36487.

K nastavení metadat doporučujeme ručně nastavit IEndpointNameMetadata metodu WithName rozšíření.

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

Ovlivněná rozhraní API