EnumConverter valida tipos registrados para ser enum
EnumConverter é um conversor de tipo que converte de e para um enum
tipo. EnumConverter agora valida que o tipo a ser registrado é de um enum
tipo.
Comportamento anterior
Anteriormente, o tipo a ser registrado não era validado para ser um enum
tipo.
Novo comportamento
A partir do .NET 9, EnumConverter lança um ArgumentException se o tipo a ser convertido não for um enum
tipo. Quaisquer classes derivadas de EnumConverter devem também respeitar este requisito.
Versão introduzida
.NET 9 Visualização 7
Tipo de mudança de rutura
Esta mudança é uma mudança comportamental.
Razão para a alteração
É lógico impor o requisito que EnumConverter deve ser usado para converter apenas para tipos de e enum
para eles. Provavelmente foi um descuido que esse requisito não tenha sido adicionado antes.
No entanto, o principal fator impulsionador para esta mudança foi para fins de corte. O corte não corta enum
tipos, mas o uso EnumConverter para enum
tipos requer DynamicallyAccessedMembersAttribute anotação para um enum
tipo. Isso significa que o uso EnumConverter
gera avisos de corte desnecessários. Uma alteração recente removeu o requisito de anotação. Parte da razão para essa mudança foi impor que EnumConverter
só fosse usado com enums
.
Ação recomendada
Não há solução fácil se um EnumConverter é usado para converter de e para um não-tipoenum
.
APIs afetadas
- EnumConverter(Type) construtor