Novidades do .NET 8: definindo valores possíveis com AllowedValuesAttribute
Durante o mês de Março/2023 a Microsoft disponibilizou o Preview 2 do .NET 8, com diversas melhorias envolvendo a utilização de Data Annotations. Maiores informações podem ser encontradas no site oficial da plataforma .NET:
Uma dessas novidades está na possibilidade de definir os valores permitidos para uma propriedade com o tipo AllowedValuesAttribute, mais uma estrutura que passa a integrar o namespace System.ComponentModel.DataAnnotations.
Na listagem a seguir temos um exemplo de uso de AllowedValuesAttribute com a classe Estado:
- Este atributo foi associado à propriedade CodRegiao (código da região de um estado) e recebe um array como parâmetro com uma sequência de valores possíveis, além de permitir que se defina um descritivo da inconsistência na propriedade ErrorMessage;
- As propriedades CodRegiao e Nome foram também marcadas com RequiredAttribute, indicando-se com isto a necessidade de preenchimento obrigatório das mesmas.
Já na próxima listagem está o conteúdo do arquivo Program.cs:
- Um array do tipo Estado foi inicializado com 6 instâncias, de forma a testar a utilização de AllowedValuesAttribute;
- O método TryValidateObject da classe Validator (namespace System.ComponentModel.DataAnnotations) foi acionado, retornando informações sobre inconsistências de acordo com as Data Annotations especificadas no tipo Estado.
O resultado da execução desta Console Application (a partir do Visual Studio 2022 17.6.0 Preview 2) está na imagem seguinte, com a inconsistência encontrada destacada em vermelho:
Disponibilizei este exemplo também no GitHub:
https://github.com/renatogroffe/DotNet8-ConsoleApp-AllowedValuesAttribute
Caso achem útil esta solução, peço por favor um ⭐️ no repositório apoiando. Fica também o convite para que vocês me sigam lá no GitHub!