Delen via


EnumConverter valideert geregistreerde typen die moeten worden opgesomd

EnumConverter is een typeconversieprogramma dat wordt geconverteerd naar en van een enum type. EnumConverter valideert nu dat het te registreren type van een enum type is.

Vorig gedrag

Voorheen werd het type dat moet worden geregistreerd, niet gevalideerd als een enum type.

Nieuw gedrag

Vanaf .NET 9 EnumConverter genereert u een ArgumentException als het type dat moet worden geconverteerd geen enum type is. Alle afgeleide klassen van EnumConverter moeten ook aan deze vereiste voldoen.

Versie geïntroduceerd

.NET 9 Preview 7

Type wijziging die fouten veroorzaken

Deze wijziging is een gedragswijziging.

Reden voor wijziging

Het is logisch om de vereiste af te dwingen die EnumConverter alleen wordt gebruikt om te converteren naar en van enum typen. Het was waarschijnlijk een overzicht dat deze vereiste niet eerder is toegevoegd.

De primaire factor voor deze wijziging was echter voor bijsnijdende doeleinden. Bijsnijden trimt geen typenenum, maar gebruikt EnumConverter voor enum typen vereiste DynamicallyAccessedMembersAttribute aantekening voor een enum type. Dit betekent dat het gebruik EnumConverter van onnodige trimwaarschuwingen genereert. Een recente wijziging heeft de aantekeningsvereiste verwijderd. Een deel van de reden voor die wijziging was om af te dwingen dat EnumConverter alleen wordt gebruikt met enums.

Er is geen eenvoudige tijdelijke oplossing als een EnumConverter wordt gebruikt om te converteren naar en van een niet-typeenum .

Betrokken API's