EndpointName メタデータが自動的に設定されない

エンドポイントに対して IEndpointNameMetadata が自動的に設定されるという、.NET 6 RC 1 で導入された動作は元に戻されました。 エンドポイント名の重複に関する問題を回避するため、IEndpointNameMetadata は自動的に設定されなくなりました。

導入されたバージョン

ASP.NET Core 6 RC 2

以前の動作

ASP.NET Core 6 RC 1 では、メソッド グループを参照するエンドポイントに対して IEndpointNameMetadata が自動的に設定されていました。 たとえば、次のコードの場合、/foo に対して EndpointNameGetFoo に設定されたエンドポイントが生成されていました。

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

該当なし