EnumConverter weryfikuje zarejestrowane typy do wyliczenia
EnumConverter jest konwerterem typów, który konwertuje na i z enum
typu. Funkcja EnumConverter sprawdza teraz, czy typ, który ma zostać zarejestrowany, jest typu enum
.
Poprzednie zachowanie
Wcześniej typ do zarejestrowania nie został zweryfikowany jako enum
typ.
Nowe zachowanie
Począwszy od platformy .NET 9, zwraca wartość ArgumentException , jeśli typ, który ma zostać przekonwertowany, EnumConverter nie jest typemenum
. Wszelkie klasy pochodne klasy programu EnumConverter powinny również przestrzegać tego wymagania.
Wprowadzona wersja
.NET 9 (wersja zapoznawcza 7)
Typ zmiany powodującej niezgodność
Ta zmiana jest zmianą behawioralną.
Przyczyna wprowadzenia zmiany
Jest to logiczne wymuszanie wymagania, które EnumConverter mają być używane do konwersji tylko na i z enum
typów. Prawdopodobnie niedopatrzenie tego wymogu nie zostało dodane wcześniej.
Jednak głównym czynnikiem napędzającym tę zmianę było przycinanie. Przycinanie nie powoduje przycinania enum
typów, ale przy użyciu EnumConverter typów enum
wymaganych DynamicallyAccessedMembersAttribute adnotacji dla enum
typu. Oznacza to, że użycie powoduje EnumConverter
wygenerowanie niepotrzebnych ostrzeżeń dotyczących przycinania. Ostatnia zmiana usunęła wymaganie adnotacji. Częścią przyczyny tej zmiany było wymuszenie użycia EnumConverter
tylko z elementem enums
.
Zalecana akcja
Nie ma łatwego obejścia, jeśli EnumConverter element jest używany do konwersji na i z innegoenum
typu.
Dotyczy interfejsów API
- EnumConverter(Type) konstruktor