Udostępnij za pośrednictwem


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 IEndpointNameMetadatakodu .

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.

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