Capítulo 13. Reflexão
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
O CLR sabe muito sobre os tipos que os nossos programas definem e utilizam. Requer que todos os assemblies forneçam metadados detalhados, descrevendo cada membro de cada tipo, incluindo detalhes de implementação privados. Confia nessas informações para executar funções críticas, como a compilação JIT e a coleta de lixo. No entanto, não guarda esse conhecimento para si mesmo. A API de reflexão concede acesso a essas informações detalhadas de tipo, para que seu código possa descobrir tudo o que o tempo de execução pode ver. Além disso, podes usar a reflexão para fazer as coisas acontecerem. Por exemplo, um objeto de reflexão que representa um método não só descreve o nome e a assinatura do método, como também te permite invocar o método. E podes ir ainda mais longe e gerar código em tempo de execução.
A reflexão é particularmente útil em estruturas extensíveis, porque elas podem usá-la para adaptar seu comportamento em tempo de execução com base na estrutura do seu código. Por exemplo, o painel Propriedades do Visual Studio utiliza a reflexão para descobrir quais as propriedades públicas que um componente oferece, pelo que se escrever um componente que possa aparecer numa superfície de design, como um elemento de IU, não precisa de fazer nada de especial para disponibilizar as suas propriedades para edição - o Visual Studio irá encontrá-las ...