Aracılığıyla paylaş


EnumConverter kayıtlı türlerin sabit listesi olduğunu doğrular

EnumConverter türüne ve türünden dönüştüren bir enum tür dönüştürücüsüdür. EnumConverter artık kaydedilecek türün bir enum tür olduğunu doğrular.

Önceki davranış

Daha önce, kaydedilecek tür bir enum tür olarak doğrulanmamıştı.

Yeni davranış

.NET 9'dan başlayarak, EnumConverter dönüştürülecek tür bir tür değilse bir ArgumentException oluştururenum. Türetilmiş sınıfları EnumConverter da bu gereksinime uyulmalıdır.

Sürüm kullanıma sunulmuştur

.NET 9 Önizleme 7

Hataya neden olan değişikliğin türü

Bu değişiklik davranışsal bir değişikliktir.

Değişiklik nedeni

Yalnızca türlere ve türlerden EnumConverter dönüştürmek için kullanılan gereksinimi enum zorunlu kılmak mantıklıdır. Bu gereksinimin daha önce eklenmemiş olması büyük olasılıkla bir gözetimdi.

Ancak, bu değişikliğin birincil sürüş faktörü kırpma amaçlıydı. Kırpma türleri kırpmazenum, ancak türlerde kullanmak EnumConverter için enum bir DynamicallyAccessedMembersAttribute tür için ek açıklama gerekirenum. Bu, kullanmanın EnumConverter gereksiz kırpma uyarıları oluşturduğu anlamına gelir. Son yapılan bir değişiklik ek açıklama gereksinimini kaldırdı. Bu değişikliğin bir nedeni, yalnızca ile EnumConverterkullanılacak olan değişikliği enums zorunlu kılmaktı.

türü olmayanEnumConverter bir öğeye ve türünden dönüştürmek için kullanılırsa enum kolay bir geçici çözüm yoktur.

Etkilenen API’ler