EndpointName 元数据不自动设置

已恢复 .NET 6 RC 1 中引入的自动为终结点设置 IEndpointNameMetadata 的行为。 IEndpointNameMetadata 不再自动设置,以避免出现终结点名称重复的问题。

引入的版本

ASP.NET Core 6 RC 2

旧行为

在 ASP.NET Core 6 RC 1 中,已为引用了方法组的终结点自动设置 IEndpointNameMetadata。 例如,以下代码为 /foo 生成了一个终结点,并将 EndpointName 设置为 GetFoo

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

新行为

从 ASP.NET Core 6 RC 2 开始,IEndpointNameMetadata 不再自动设置。 下面的代码不会生成任何 IEndpointNameMetadata

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

中断性变更的类型

此项更改可能会影响源兼容性

更改原因

自动设置终结点名称元数据的行为并不稳定,导致了为不同的终结点设置相同名称的问题。 有关详细信息,请参阅 dotnet/aspnetcore#36487

建议使用 WithName 扩展方法手动设置 IEndpointNameMetadata 来设置元数据。

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

受影响的 API

不适用