Consultas dinâmicas sobre dados e objetos usando Reflection - Artigo Revista . Net Magazine 87

Neste artigo será abordado um poderosíssimo recurso do Microsoft .NET Framework que provê meios para recuperação e manipulação de informações sobre tipos de dados em tempo de execução, oferecendo mecanismos dinâmicos à programação.

Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

Neste artigo será abordado um poderosíssimo recurso do Microsoft .NET Framework que provê meios para recuperação e manipulação de informações sobre tipos de dados em tempo de execução, oferecendo mecanismos dinâmicos à programação.

Para que serve

Com o uso de reflection é permitido ao desenvolvedor inspecionar o conteúdo interno dos executáveis gerados pelo compilador, possibilitando a identificação de forma programática dos módulos, tipos de dados e membros disponíveis dentro de um arquivo. Por exemplo, é possível consultar quais são métodos disponíveis em uma determinada classe e até mesmo acioná-los em tempo de execução sem mesmo saber que estes existem em tempo de desenvolvimento.

Em que situação o tema é útil

Um exemplo bem clássico onde o reflection pode ser útil é na construção de plugins, um modelo de arquitetura que permite acoplar e estender funcionalidades a um produto de software, realizando isto através de interfaces bem definidas. Uma vantagem muito significativa deste modelo de programação é que possibilita a alteração do comportamento de um software sem a necessidade de recompilar todo o projeto.

Reflection

O assunto que iremos abordar nesta matéria é de suma importância para estabelecer mecanismos dinâmicos na programação de projetos de sistemas. Com o uso de Reflection é permitido ao desenvolvedor criar componentes de software acopláveis. Neste artigo descrevemos como o CLR (Common Language Runtime) realiza este processo de reflexão através da estrutura de metadados, como é possível recuperar informações sobre tipos de dados em tempo de execução. Na parte prática construiremos uma aplicação extensível, onde através do arquivo de configuração estabeleceremos o comportamento dos botões, associando um método de um executável qualquer ao evento de clique dos botões.

Definitivamente a tarefa de desenvolver software é algo que envolve técnica e criatividade, podemos assumir que uma determinada demanda pode ser construída de diversas formas, empregando conceitos e tecnologias diferentes e ao mesmo tempo atingir o resultado esperado. Entre estas diversas maneiras existem formas mais elegantes que expressam maior clareza, outras mais eficientes que consomem menos recursos computacionais e aí por diante. Um fator que determina a qualidade da solução é sem sombra de dúvida o conhecimento e experiência adquirida ao longo de uma carreira. Um conhecimento indispensável para o desenvolvedor .NET é o uso de reflection, ao decorrer deste artigo iremos entender como este recurso pode auxiliar em muitas situações do dia a dia trazendo resultados interessantes.

Com reflection o desenvolvedor pode realizar operações como: fazer a chamada a um método, instanciar um objeto, acessar dados de uma propriedade etc. de uma forma diferente e totalmente dinâmica. Um exemplo disto é acionar um método qualquer dentro de uma classe informando o nome deste método em tempo de execução através de uma string. Isto mesmo, ao invés de declarar o acionamento do método dentro de outro método da forma convencional, podemos acionar um método chamado InvokeMember da classe Type e atribuir como argumento o nome dos métodos a ser executado dentro de uma determinada classe, neste momento o CLR (Common Language Runtime) verificará se este método existe, atribuir os parâmetros necessários e ativar a execução do método. "

[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados