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
不适用
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈