Udostępnij za pośrednictwem


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.

Nie ma łatwego obejścia, jeśli EnumConverter element jest używany do konwersji na i z innegoenum typu.

Dotyczy interfejsów API