Utilizando a Técnica Reflection em .Net

reflection

Esse artigo foi escrito por Luiz Paulo Lindenmaier, que atua como Desenvolvedor .Net em nosso #TimeWK 🚀


Você já ouviu falar em Reflection?

Reflection se trata de uma técnica muito interessante, que nos permite escrever um código muito mais coeso e com qualidade. Com ela, somos capazes de acessar, em tempo de execução, todas as informações relativas a classe, tais como métodos, propriedades e atributos. Dessa forma, podemos fazer de forma muito mais simples e inteligente tarefas que de outra forma seriam muito mais trabalhosas de se realizar.

No .Net, as classes necessárias para a utilização da técnica estão no namespace System.Reflection. Vamos ver na prática como fica?

O objetivo aqui é listar os valores atribuídos às propriedades utilizando reflection. Para isso, instanciamos a classe Person e logo em seguida, utilizamos os métodos GetType e GetProperties para acessar a lista de propriedades da classe. Então, dentro do laço foreach, temos acesso a vários metadados da classe.

Veja como ficou o output:

Legal né? Mas não seria mais simples apenas acessar as propriedades normalmente? Seria. Mas a utilização do reflection nos permite escrever um código muito mais coeso e generalizável.

E por falar em generalização, utilizando essa técnica combinada com os generics do .Net, podemos criar um método que liste os valores das propriedades de qualquer classe! Veja como fica:

Primeiro, criamos um método genérico que recebe como parâmetro um objeto de algum tipo, a ser definido em tempo de execução. O restante da lógica segue inalterada do exemplo anterior. Além disso, criamos mais duas classes, Dog e Cat, para mostrarmos melhor a mágica acontecendo:

E o output ficou assim:

Conclusão:

Reflection é simples e ao mesmo tempo extremamente poderosa. Fique ligado para novas dicas de técnicas que podem facilitar o seu trabalho e te ajudar a escrever códigos melhores e com muito mais qualidade.