Метаданные 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.
Рекомендуемое действие
Мы рекомендуем вам вручную задать IEndpointNameMetadata
с помощью метода расширения WithName
, чтобы задать метаданные.
app.MapGet("/foo", GetFoo).WithName("GetFoo");
Затронутые API
Н/Д
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по