Compartir vía


MetadataReader Clase

Definición

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

public ref class MetadataReader sealed
public sealed class MetadataReader
type MetadataReader = class
Public NotInheritable Class MetadataReader
Herencia
MetadataReader

Ejemplos

En este ejemplo se muestra cómo crear MetadataReader para un ensamblado y leer todas las definiciones de tipo de él:

using var fs = new FileStream("Example.dll", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
using var peReader = new PEReader(fs);

MetadataReader mr = peReader.GetMetadataReader();

foreach (TypeDefinitionHandle tdefh in mr.TypeDefinitions)
{
    TypeDefinition tdef = mr.GetTypeDefinition(tdefh);

    string ns = mr.GetString(tdef.Namespace);
    string name = mr.GetString(tdef.Name);
    Console.WriteLine($"{ns}.{name}");
}

Comentarios

MetadataReader lee el contenido de tablas y montones de los metadatos de la CLI especificados. Opera construcciones de bajo nivel, como definiciones de tipo y método. Para obtener una API de nivel superior para inspeccionar el contenido de los ensamblados mediante construcciones de reflexión, consulte MetadataLoadContext.

Puede usar constructores, como MetadataReader(Byte*, Int32), para crear una instancia de para una ubicación de MetadataReader memoria determinada. Para leer metadatos del archivo de ensamblado portable ejecutable, cree PEReader y use el método de GetMetadataReader(PEReader) extensión.

El formato de los metadatos de la CLI se define mediante la especificación ECMA-335. Para obtener más información, vea Standard ECMA-335 - Common Language Infrastructure (CLI) en el sitio web de Ecma International.

Constructores

MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder)

Inicializa una nueva instancia de la clase MetadataReader a partir de los metadatos almacenados en la ubicación de memoria especificada.

MetadataReader(Byte*, Int32, MetadataReaderOptions)

Inicializa una nueva instancia de la clase MetadataReader a partir de los metadatos almacenados en la ubicación de memoria especificada.

MetadataReader(Byte*, Int32)

Inicializa una nueva instancia de la clase MetadataReader a partir de los metadatos almacenados en la ubicación de memoria especificada.

Propiedades

AssemblyFiles

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

AssemblyReferences

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

CustomAttributes

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

CustomDebugInformation

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

DebugMetadataHeader

Obtiene la información descodificada de la secuencia de #Pdb, o null si la secuencia no está presente.

DeclarativeSecurityAttributes

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

Documents

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

EventDefinitions

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

ExportedTypes

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

FieldDefinitions

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

ImportScopes

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

IsAssembly

Obtiene un valor que indica si los metadatos representan un ensamblado.

LocalConstants

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

LocalScopes

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

LocalVariables

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

ManifestResources

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

MemberReferences

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

MetadataKind

Obtiene el tipo de los metadatos.

MetadataLength

Obtiene la longitud de los datos subyacentes.

MetadataPointer

Obtiene el puntero a los datos subyacentes.

MetadataVersion

Obtiene la lectura de la cadena de versión del encabezado de los metadatos.

MethodDebugInformation

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

MethodDefinitions

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

Options

Obtiene el objeto MetadataReaderOptions que se pasa al constructor.

PropertyDefinitions

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

StringComparer

Obtiene al comparador que se usa para comparar las cadenas almacenadas en los metadatos.

TypeDefinitions

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

TypeReferences

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

UTF8Decoder

Obtiene el decodificador que usa el lector para generar instancias de cadenas de secuencias de bytes con codificación UTF8.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetAssemblyDefinition()

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetAssemblyFile(AssemblyFileHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetAssemblyName(String)

Obtiene el nombre de ensamblado (AssemblyName) de un archivo dado.

GetAssemblyReference(AssemblyReferenceHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetBlobBytes(BlobHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetBlobContent(BlobHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetBlobReader(BlobHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetBlobReader(StringHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetConstant(ConstantHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetCustomAttribute(CustomAttributeHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetCustomAttributes(EntityHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetCustomDebugInformation(CustomDebugInformationHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetCustomDebugInformation(EntityHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetDocument(DocumentHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetEventDefinition(EventDefinitionHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetExportedType(ExportedTypeHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetFieldDefinition(FieldDefinitionHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetGenericParameter(GenericParameterHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetGenericParameterConstraint(GenericParameterConstraintHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetGuid(GuidHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetImportScope(ImportScopeHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetInterfaceImplementation(InterfaceImplementationHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetLocalConstant(LocalConstantHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetLocalScope(LocalScopeHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetLocalScopes(MethodDebugInformationHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetLocalScopes(MethodDefinitionHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetLocalVariable(LocalVariableHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetManifestResource(ManifestResourceHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetMemberReference(MemberReferenceHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetMethodDebugInformation(MethodDebugInformationHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetMethodDebugInformation(MethodDefinitionHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetMethodDefinition(MethodDefinitionHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetMethodImplementation(MethodImplementationHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetMethodSpecification(MethodSpecificationHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetModuleDefinition()

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetModuleReference(ModuleReferenceHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetNamespaceDefinition(NamespaceDefinitionHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetNamespaceDefinitionRoot()

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetParameter(ParameterHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetPropertyDefinition(PropertyDefinitionHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetStandaloneSignature(StandaloneSignatureHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetString(DocumentNameBlobHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetString(NamespaceDefinitionHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetString(StringHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetTypeDefinition(TypeDefinitionHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetTypeReference(TypeReferenceHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetTypeSpecification(TypeSpecificationHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

GetUserString(UserStringHandle)

Lee los metadatos tal y como se define en la especificación ECMA 335 de la CLI.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Métodos de extensión

GetEditAndContinueLogEntries(MetadataReader)

Enumera las entradas del registro de EnC.

GetEditAndContinueMapEntries(MetadataReader)

Enumera las entradas del mapa de EnC.

GetHeapMetadataOffset(MetadataReader, HeapIndex)

Devuelve el desplazamiento desde el inicio de los metadatos hasta el montón especificado.

GetHeapSize(MetadataReader, HeapIndex)

Devuelve el tamaño del montón especificado.

GetNextHandle(MetadataReader, BlobHandle)

Devuelve el identificador del elemento Blob que sigue al especificado en el montón de Blob o un identificador nulo si es el último.

GetNextHandle(MetadataReader, StringHandle)

Devuelve el identificador de la cadena que sigue a la especificada en el montón de cadenas, o bien un identificador nulo si es la última.

GetNextHandle(MetadataReader, UserStringHandle)

Devuelve el identificador del elemento UserString que sigue al especificado en el montón de UserString, o bien un identificador nulo si es el último.

GetTableMetadataOffset(MetadataReader, TableIndex)

Devuelve el desplazamiento desde el inicio de los metadatos hasta la tabla especificada.

GetTableRowCount(MetadataReader, TableIndex)

Devuelve el número de filas de la tabla especificada.

GetTableRowSize(MetadataReader, TableIndex)

Devuelve el tamaño de una fila de la tabla especificada.

GetTypesWithEvents(MetadataReader)

Enumera los tipos que definen uno o varios eventos.

GetTypesWithProperties(MetadataReader)

Enumera los tipos que definen una o varias propiedades.

ResolveSignatureTypeKind(MetadataReader, EntityHandle, Byte)

Dado un identificador de tipo y una clase de tipo sin formato en un blob de firma, determina si el tipo de destino es un tipo de valor o de referencia.

GetHeapOffset(MetadataReader, Handle)

Obtiene el desplazamiento de los datos del montón de metadatos correspondiente al elemento handle especificado en el contexto de reader.

GetRowNumber(MetadataReader, EntityHandle)

Obtiene el número de fila de una entrada de la tabla de metadatos que corresponde al elemento handle especificado en el contexto de reader.

GetToken(MetadataReader, EntityHandle)

Obtiene el token de metadatos del elemento handle especificado en el contexto de reader.

GetToken(MetadataReader, Handle)

Obtiene el token de metadatos del elemento handle especificado en el contexto de reader.

Se aplica a