EnumConverter は、登録済みの型が列挙型として検証されます
EnumConverter は、 enum
型との間で変換する型コンバーターです。 EnumConverter は、登録する型が enum
型であることを検証するようになりました。
以前の動作
以前は、登録する型が enum
型であることが検証されませんでした。
新しい動作
.NET 9 以降では、変換する型がenum
型でない場合、EnumConverterはArgumentExceptionをスローします。 EnumConverterの派生クラスでも、この要件を考慮する必要があります。
導入されたバージョン
.NET 9 Preview 7
破壊的変更の種類
この変更は、動作変更です。
変更理由
enum
型との間の変換にのみ使用EnumConverter要件を適用することは論理的です。 この要件が以前に追加されなかったのは、おそらく見落としでした。
ただし、この変更の主な要因はトリミングの目的でした。 トリミングはenum
型をトリミングしませんが、enum
型にEnumConverterを使用するには、enum
型DynamicallyAccessedMembersAttribute注釈が必要です。 つまり、 EnumConverter
を使用すると、不要なトリミング警告が生成されます。 最近の変更により、注釈の要件が削除されました。 その変更の理由の一部は、EnumConverter
enums
でのみ使用されるように強制するためです。
推奨される操作
EnumConverterを使用してenum
以外の型との間で変換を行う場合、簡単な回避策はありません。
影響を受ける API
- EnumConverter(Type) コンストラクター
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET