 |
|
 |
Metadatos
En la plataforma .NET se distinguen dos tipos de módulos de código compilado: ejecutables (extensión .exe) y librerías de enlace dinámico (extensión .dll generalmente) Ambos son ficheros que contienen definiciones de tipos de datos, y la diferencia entre ellos es que sólo los primeros disponen de un método especial que sirve de punto de entrada a partir del que es posible ejecutar el código que contienen haciendo una llamada desde la línea de comandos del sistema operativo. A ambos tipos de módulos se les suele llamar ejecutables portables (PE), ya que su código puede ejecutarse en cualquiera de los diferentes sistemas operativos de la familia Windows para los que existe alguna versión del CLR.
El contenido de un módulo no es sólo MSIL, sino que también consta de otras dos áreas muy importantes: la cabecera de CLR y los metadatos:
- La cabecera de CLR es un pequeño bloque de información que indica que se trata de un módulo gestionado e indica es la versión del CLR que necesita, cuál es su firma digital, cuál es su punto de entrada (si es un ejecutable), etc.
- Los metadatos son un conjunto de datos organizados en forma de tablas que almacenan información sobre los tipos definidos en el módulo, los miembros de éstos y sobre cuáles son los tipos externos al módulo a los que se les referencia en el módulo. Los metadatos de cada modulo los genera automáticamente el compilador al crearlo, y entre sus tablas se incluyen[1]:
|
Tabla |
Descripción |
|
ModuleDef |
Define las características del módulo. Consta de un único elemento que almacena un identificador de versión de módulo (GUID creado por el compilador) y el nombre de fichero que se dio al módulo al compilarlo (así este nombre siempre estará disponible, aunque se renombre el fichero) |
|
TypeDef |
Define las características de los tipos definidos en el módulo. De cada tipo se almacena su nombre, su tipo padre, sus modificadores de acceso y referencias a los elementos de las tablas de miembros correspondientes a sus miembros. |
|
MethodDef |
Define las características de los métodos definidos en el módulo. De cada método se guarda su nombre, signatura (por cada parámetro se incluye una referencia al elemento apropiado en la tabla ParamDef), modificadores y posición del módulo donde comienza el código MSIL de su cuerpo. |
|
ParamDef |
Define las características de los parámetros definidos en el módulo. De cada parámetro se guarda su nombre y modificadores. |
|
FieldDef |
Define las características de los campos definidos en el módulo. De cada uno se almacena información sobre cuál es su nombre, tipo y modificadores. |
|
PropertyDef |
Define las características de las propiedades definidas en el módulo. De cada una se indica su nombre, tipo, modificadores y referencias a los elementos de la tabla MethodDef correspondientes a sus métodos set/get. |
|
EventDef |
Define las características de los eventos definidos en el módulo. De cada uno se indica su nombre, tipo, modificadores. y referencias a los elementos de la tabla MethodDef correspondientes a sus métodos add/remove. |
|
AssemblyRef |
Indica cuáles son los ensamblados externos a los que se referencia en el módulo. De cada uno se indica cuál es su nombre de fichero (sin extensión), versión, idioma y marca de clave pública. |
|
ModuleRef |
Indica cuáles son los otros módulos del mismo ensamblado a los que referencia el módulo. De cada uno se indica cuál es su nombre de fichero. |
|
TypeRef |
Indica cuáles son los tipos externos a los que se referencia en el módulo. De cada uno se indica cuál es su nombre y, según donde estén definidos, una referencia a la posición adecuada en la tabla AssemblyRef o en la tabla ModuleRef. |
|
MemberRef |
Indican cuáles son los miembros definidos externamente a los que se referencia en el módulo. Estos miembros pueden ser campos, métodos, propiedades o eventos; y de cada uno de ellos se almacena información sobre su nombre y signatura, así como una referencia a la posición de la tabla TypeRef donde se almacena información relativa al tipo del que es miembro. |
Principales tablas de metadatos
Nótese que el significado de los metadatos es similar al de otras tecnologías previas a la plataforma .NET como lo son los ficheros IDL. Sin embargo, los metadatos tienen dos ventajas importantes sobre éstas: contiene más información y siempre se almacenan incrustados en el módulo al que describen, haciendo imposible la separación entre ambos. Además, como se verá más adelante, es posible tanto consultar los metadatos de cualquier módulo a través de las clases del espacio de nombres System.Reflection de la BCL como añadirles información adicional mediante atributos (se verá más adelante) |
| |
 |
que gonorrea de pagina
por
juan pablo gil
Respuesta recibida el [08/04/2008 08:43:15]
|
 |
manada de gonorreas creen que esta pagina es una chimba pero que hp pescao de pagina cojan jucio manada de malparidos de juan pablo gil para esta chanda de pagina
|
| |
 |
manada de malparidos
por
carlota
Respuesta recibida el [08/04/2008 08:46:40]
|
 |
perros hp nosaben ni q hacer con la plata solo hacen cosas sin saber
|
| |
 |
los semilleros
por
de la cabesona andres ramires
Respuesta recibida el [08/04/2008 08:49:06]
|
 |
que hubo manadas de gonorreas creen que la paagina es muy chimba o que, los semilleros mandamos hp. esto va para esta perra chanda de pagina
|
| |
 |
Primates...no valoran el conoc...
por
jef
Respuesta recibida el [21/07/2008 02:27:50]
|
 |
Primates...no valoran el conocimiento, si supieran que los que nos dan esta información son personas ocupadas q dedican un poco de su tiempo con deseos de q uds mismos aprendan y salgan de la ignorancia....
|
| |
 |
Nunca se debe desestimar el conocimiento
por
Paola
Respuesta recibida el [25/07/2008 08:55:54]
|
 |
Por que insultar asi y menospreciar el trabajo de otros?? Me parece que siquieren insultar hagan un foro para eso!!! Pero aqui todo lo que nos dan y brindan a nivel conocimiento es mas que valorable e importante. Asi que simios Abstenerse!!!!!! Muy buena la pagina los felicito a mi en particular me super ayuda!!!! GRACIAS!!!!
|
| |
 |
que lastima
por
ESTEBAN
Respuesta recibida el [24/09/2008 01:12:01]
|
 |
que pena que consideren el conocimiento gratuíto con repugnancia. No parecen profesionales quienes san estos canales para esto. felicitaciones, buen sitio
|
| |
 |
Que absurdo
por
Fulano
Respuesta recibida el [26/09/2008 05:20:19]
|
 |
Que absurdos comentarios. En pro de la información útil en la inet, bastaría que los borrasen.
El artículo me parece bastante útil, sucinto y aclara varias ideas. Gracias.
|
| |
 |
Homo Habilis Vs Australopithecus
por
Loso
Respuesta recibida el [06/10/2008 08:09:12]
|
 |
Me encanta ver, como una subcultura que apenas ha salido de la selva... Intenta volver con total desesperacion..
Un saludo a todos aquellos que dedican su tiempo libre en sacarnos las castañas del fuego.
PD:(Australopithecus transcription) Grrooarr... Tam, tam, Huiiiiil¡¡¡¡ Unga, Unga... Chof Choff...
|
| |
 |
Hay criaturas para las cuales ...
por
Pedro m
Respuesta recibida el [16/12/2008 11:21:35]
|
 |
Hay criaturas para las cuales el conocimiento es un paradigma al cual estan vedados, el insulto es solo una respuesta a la incapacidad de comprender algo un poco mas complejo que lo cotidiano, comparto la opiniòn de otro forista, bastaría eliminar los comentarios de este desadaptado.
|
| |
 |
Aporte
por
Byron M
Respuesta recibida el [02/11/2009 12:19:11]
|
 |
Esta es la segunda vez que los datos entregados en esta pagina me salvan para entender la logica del programa en el cual estoy trabajando, muchas gracias a quienes publican esto =)
|
| Añadir comentario ... |
Para preguntar utiliza los foros
|
|

|
Metadatos |
|
Autor:
José Antonio González Seco
|
|
Visitas:
8871 |
Fecha de publicación:
29/09/2006 |
|
José Antonio es experto en tecnologias Microsoft. Imparte cursos y conferencias en congresos sobre C# y .NET en Universidades de toda España (Sevilla, Barcelona, San Sebastián, Valencia, Oviedo, etc.) en representación de grandes empresas como Microsoft. |
|
|
Visitas:
112
|
Comentarios:
3
|
Archivo:
Articulos
|
Visitas:
813
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
770
|
Comentarios:
3
|
Archivo:
Articulos
|
Visitas:
674
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
3187
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
14577
|
Comentarios:
7
|
Archivo:
Articulos
|
Visitas:
1503
|
Comentarios:
3
|
Archivo:
Articulos
|
|
Visitas:
698
|
Comentarios:
2
|
Archivo:
Articulos
|
|
Visitas:
370
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
2035
|
Comentarios:
2
|
Archivo:
Articulos
|
|
|
 |
|
 |