Array
(
)

Qual a finalidade do reflection

Pjava
   - 15 ago 2013

Qual a finalidade do reflection? Só para obter Propriedade pública de uma classe, tipos e etc...? No dia a dia, há alguma outra usabilidade do Reflection? Como utilizar o Reflection em projetos do dia a dia, projetos de business e etc..

Joel Rodrigues
   - 16 ago 2013

A reflexão permite que você explore a estrutura de um objeto/classe sem conhece-la previamente, identificando suas propriedades e métodos.
Um exemplo interessante em que eu já vi a reflexão sendo usada e eu mesmo também a utilizei foi para criar uma aplicação com suporte a plug-ins. O funcionamento era o seguinte:
a aplicação contava com basicamente uma tela principal onde havia um menu. Então eram construídas várias DLLs com formulários (os plug-ins), e salvas em uma pasta. Ao iniciar a aplicação principal, ela varria a pasta de plug-ins e carregava todas as DLLs, explorando sua estrutura em runtime e buscando seus formulários. Para cada form contido na DLL, criava-se um item no menu para acessá-lo. De fato não é uma arquitetura de plug-ins complexa, mas servia para o objetivo da aplicação.

Joel Rodrigues
   - 16 ago 2013

Ah, eu sei que essa questão foi sobre reflection e essa dúvida surge para todos, mas nem sempre é possível encontrar uma aplicação comum para um recurso em um determinado tipo de aplicação. Por exemplo, existe uma forma de enviar sinais elétricos para cada pino de uma porta paralela, mas como eu posso aplicar isso em aplicações comerciais comuns? É meio difícil, não?
Ou seja, se a coisa existe, tem aplicação, mas nem sempre essa aplicação é útil para nós.
Abraço.

Leonardo Carvalho
   - 16 ago 2013

bom exemplo do caso dos plugins Joel. Pergunta muito boa também.