Compartilhar via


Os metadados EndpointName não são definidos automaticamente

O comportamento introduzido no .NET 6 RC 1 para definir automaticamente IEndpointNameMetadata nos endpoints foi desfeito. IEndpointNameMetadata não é mais definido automaticamente para evitar problemas com nomes de ponto de extremidade duplicados.

Versão introduzida

ASP.NET Core 6 RC 2

Comportamento anterior

No ASP.NET Core 6 RC 1, IEndpointNameMetadata foi automaticamente definido para endpoints que referenciaram um grupo de métodos. Por exemplo, o código a seguir gerou um endpoint para /foo com EndpointName configurado como GetFoo.

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

Novo comportamento

A partir do ASP.NET Core 6 RC 2, IEndpointNameMetadata não é definido automaticamente. O código a seguir não gera nenhum IEndpointNameMetadata.

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

Tipo de mudança disruptiva

Essa alteração pode afetar a compatibilidade da origem.

Motivo da alteração

O comportamento de definir automaticamente os metadados de nome para os endpoints não era confiável e resultou em problemas em que o mesmo nome foi atribuído a endpoints diferentes. Para obter mais informações, consulte dotnet/aspnetcore#36487.

Recomendamos que você defina IEndpointNameMetadata manualmente usando o WithName método de extensão para definir os metadados.

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

APIs afetadas

Não aplicável