EndpointName メタデータが自動的に設定されない
エンドポイントに対して IEndpointNameMetadata
が自動的に設定されるという、.NET 6 RC 1 で導入された動作は元に戻されました。 エンドポイント名の重複に関する問題を回避するため、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
該当なし
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET