Partager via


EnumConverter valide les types inscrits pour qu’ils soient enum

EnumConverter est un convertisseur de type qui convertit en et à partir d’un enum type. EnumConverter valide maintenant que le type à inscrire est d’un enum type.

Comportement précédent

Auparavant, le type à inscrire n’a pas été validé pour être un enum type.

Nouveau comportement

À compter de .NET 9, EnumConverter lève une ArgumentException valeur si le type à convertir n’est pas un enum type. Toutes les classes dérivées de EnumConverter doivent également respecter cette exigence.

Version introduite

.NET 9 Préversion 7

Type de changement cassant

Ce changement est un changement de comportement.

Raison du changement

Il est logique d’appliquer la condition à EnumConverter utiliser pour effectuer la conversion en et à partir de enum types uniquement. Il était probable que cette exigence n’ait pas été ajoutée précédemment.

Toutefois, le principal facteur moteur de ce changement était à des fins de découpage. Le découpage ne supprime pas les types, mais utilise EnumConverter pour enum les types requis DynamicallyAccessedMembersAttribute l’annotation d’un enum enum type. Cela signifie que l’utilisation EnumConverter génère des avertissements de découpage inutiles. Une modification récente a supprimé l’exigence d’annotation. Une partie de la raison de cette modification était d’appliquer ce qui EnumConverter ne doit être utilisé que avec enums.

Il n’existe aucune solution de contournement facile si une EnumConverter méthode est utilisée pour effectuer une conversion vers et à partir d’un type différentenum .

API affectées