Capítulo 19. Reflexión y metadatos
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Como vimos en el Capítulo 18, un programa C# se compila en un ensamblado que incluye metadatos, código compilado y recursos. Inspeccionar los metadatos y el código compilado en tiempo de ejecución se denomina reflexión.
El código compilado en un ensamblador contiene casi todo el contenido del código fuente original. Parte de la información se pierde, como los nombres de las variables locales, los comentarios y las directivas del preprocesador. Sin embargo, la reflexión puede acceder a casi todo lo demás, permitiendo incluso escribir un descompilador.
Muchos de los servicios disponibles en .NET y expuestos mediante C# (como la vinculación dinámica, la serialización y la vinculación de datos) dependen de la presencia de metadatos. Tus propios programas también pueden aprovechar estos metadatos e incluso ampliarlos con nueva información mediante atributos personalizados. El espacio de nombres System.Reflection
alberga la API de reflexión. También es posible, en tiempo de ejecución, crear dinámicamente nuevos metadatos e instrucciones ejecutables en IL mediante las clases del espacio de nombres System.Reflection.Emit
espacio de nombres.
Los ejemplos de este capítulo suponen que importas los espacios de nombres System
y System.Reflection
así como los espacios de nombres System.Reflection.Emit
.
Nota
Cuando utilizamos el término "dinámicamente" ...
Get C# 8.0 en pocas palabras now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.