Criar atributos personalizados

Caso você necessite de personalizar atributos "attribute" para sua aplicação seja ela api, web ou desktop basta você criar uma nova classe "class" em sua aplicação herdando da classe "Attribute". Vamos a um exemplo.

Digamos que você tenha a necessidade de criar um atributo para verificar se o valor informado possui somente números e num total de 8 digitos, na qual chamaremos de CepAttribute. 

public class CepAttribute : Attribute {

}

Após criar esse arquivo basta utilizar o novo atributo em suas classes, segue um exemplo:

public class Pessoa
{
   public string Codigo { get; set; }

   public string Nome { get; set; }

   [Cep]
   public string Cep { get; set; }
}

Mas ainda nosso atributo customizado ainda não está fazendo a validação conforme a nossa necessidade, precisamos fazer a seguinte alteração e nossa classe CepAttribute. Segue a classe alterada:

public class CepAttribute : Attribute
{
   public override bool Match(object obj)
   {
      Regex regex = new Regex(@"^\d{8}");
      return regex.IsMatch((string)obj);
   }
}

Pessoal é isso, segue abaixo um link de um exemplo bem simples sobre a utilização dessas classes.

github.com/csharp-attribute

Um abraço e até o próximo artigo.

Artigos Relacionados