Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
EnumConverter är en typkonverterare som konverterar till och från en enum
typ. EnumConverter verifierar nu att den typ som ska registreras är av en enum
typ.
Tidigare beteende
Tidigare verifierades inte den typ som ska registreras som en enum
typ.
Nytt beteende
Från och med .NET 9 EnumConverter genererar en ArgumentException om typen som ska konverteras inte är en enum
typ. Alla härledda klasser av EnumConverter bör också respektera detta krav.
Version introducerad
Förhandsversion 7 av .NET 9
Typ av icke-bakåtkompatibel ändring
Den här ändringen är en beteendeförändring.
Orsak till ändringen
Det är logiskt att framtvinga kravet som EnumConverter ska användas för att konvertera till och från enum
endast typer. Det var sannolikt ett förbiseende att det här kravet inte lades till tidigare.
Den främsta drivkraften för den här ändringen var dock i trimningssyfte.
Trimning trimmar enum
inte typer, men använder EnumConverter för enum
typer som krävs DynamicallyAccessedMembersAttribute anteckning för en enum
typ. Det innebär att användning EnumConverter
genererar onödiga trimvarningar. En nyligen genomförd ändring tog bort anteckningskravet. En del av anledningen till ändringen var att framtvinga att EnumConverter
endast användas med enums
.
Rekommenderad åtgärd
Det finns ingen enkel lösning om en EnumConverter används för att konvertera till och från en icke-typenum
.
Berörda API:er
- EnumConverter(Type) konstruktor