Condividi tramite


EnumConverter convalida i tipi registrati da enumerare

EnumConverter è un convertitore di tipi che esegue la conversione in e da un enum tipo. EnumConverter convalida ora che il tipo da registrare è di un enum tipo.

Comportamento precedente

In precedenza, il tipo da registrare non è stato convalidato come enum tipo.

Nuovo comportamento

A partire da .NET 9, EnumConverter genera un'eccezione ArgumentException se il tipo da convertire non è un enum tipo. Anche le classi derivate di EnumConverter devono rispettare questo requisito.

Versione introdotta

.NET 9 Anteprima 7

Tipo di modifica che causa un'interruzione

Questa è una modifica funzionale.

Motivo della modifica

È logico applicare il requisito usato EnumConverter per eseguire la conversione solo in e da enum tipi. È probabile che questo requisito non sia stato aggiunto in precedenza.

Tuttavia, il fattore di guida principale per questa modifica è stato per scopi di taglio. Trimming non taglia enum i tipi, ma usa EnumConverter per enum i tipi necessari DynamicallyAccessedMembersAttribute annotazioni per un enum tipo. Ciò significa che l'uso EnumConverter di genera avvisi di taglio non necessari. Una modifica recente ha rimosso il requisito di annotazione. Parte del motivo di tale modifica era imporre che EnumConverter venga usato solo con enums.

Non esiste una soluzione alternativa semplice se EnumConverter un oggetto viene usato per eseguire la conversione da e verso un tipo diversoenum da .

API interessate