O que são atributos?
Atributos são "anotações" que podem ser adicionadas ao código para fornecer informações adicionais. Eles não alteram diretamente a execução do programa, mas são usados em tempo de compilação ou execução para definir comportamentos específicos.
Por exemplo, o atributo [Obsolete]
pode ser aplicado a métodos para indicar que eles estão obsoletos:
[Obsolete("Este método será removido em versões futuras.")]
public void MetodoAntigo()
{
Console.WriteLine("Método antigo.");
}
O que é reflexão?
Reflexão é uma funcionalidade que permite ao programa inspecionar e interagir com seus próprios elementos em tempo de execução. Ela é útil para acessar atributos, métodos, propriedades e outras informações de classes, mesmo que não se tenha conhecimento prévio sobre elas.
Um exemplo simples seria obter os atributos aplicados a um método:
using System;
using System.Reflection;
public class Exemplo
{
[Obsolete("Este método será removido.")]
public void MetodoAntigo() { }
public static void Main()
{
Type tipo = typeof(Exemplo);
MethodInfo metodo = tipo.GetMethod("MetodoAntigo");
object[] atributos = metodo.GetCustomAttributes(false);
foreach (var atributo in atributos)
{
Console.WriteLine($"Atributo encontrado: {atributo}");
}
}
}
Quando usar?
Atributos e reflexão são úteis em cenários como:
- Validação de dados com base em regras definidas.
- Serialização e desserialização de objetos.
- Injeção de dependências e configuração dinâmica.
- Criação de frameworks ou bibliotecas que precisam acessar elementos do código em tempo de execução.
O uso eficiente dessas ferramentas pode trazer flexibilidade ao seu projeto, mas é importante usá-las com cuidado, pois o uso excessivo de reflexão pode impactar o desempenho.
Nenhum comentário:
Postar um comentário