Compartilhar via


Os metadados EndpointName não são definidos automaticamente

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

Versão introduzida

ASP.NET Core 6 RC 2

Comportamento anterior

No ASP.NET Core 6 RC 1, IEndpointNameMetadata foi definido automaticamente para pontos de extremidade que referenciavam um grupo de métodos. Por exemplo, o código a seguir produziu um ponto de extremidade para /foo com EndpointName definido 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 alteração interruptiva

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

Motivo da alteração

O comportamento de definir automaticamente os metadados do nome do ponto de extremidade não era robusto e resultava em problemas em que o mesmo nome era definido para diferentes pontos de extremidade. Para obter mais informações, consulte dotnet/aspnetcore#36487.

É recomendável definir IEndpointNameMetadata manualmente usando o método de extensão WithName para definir os metadados.

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

APIs afetadas

N/D