MetadataReader Klasse

Definition

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

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

Beispiele

In diesem Beispiel wird gezeigt, wie Sie für eine Assembly erstellen MetadataReader und alle Typdefinitionen daraus lesen:

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}");
}

Hinweise

MetadataReader liest den Inhalt von Tabellen und Heaps aus den angegebenen CLI-Metadaten. Sie betreibt Konstrukte auf niedriger Ebene, z. B. Typ- und Methodendefinitionen. Informationen zu einer API auf höherer Ebene zum Überprüfen des Inhalts von Assemblys mithilfe von Reflektionskonstrukten finden Sie unter MetadataLoadContext.

Sie können Konstruktoren wie MetadataReader(Byte*, Int32)verwenden, um eine instance von MetadataReader für einen bestimmten Speicherspeicherort zu erstellen. Erstellen und verwenden Sie die Erweiterungsmethode, PEReader um Metadaten aus der GetMetadataReader(PEReader) portablen ausführbaren Assemblydatei zu lesen.

Das Format der CLI-Metadaten wird durch die ECMA-335-Spezifikation definiert. Weitere Informationen finden Sie auf der Ecma International-Website unter Standard ECMA-335 – Common Language Infrastructure (CLI).

Konstruktoren

MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder)

Initialisiert eine neue Instanz der MetadataReader-Klasse aus den Metadaten, die am angegebenen Speicherort gespeichert sind.

MetadataReader(Byte*, Int32, MetadataReaderOptions)

Initialisiert eine neue Instanz der MetadataReader-Klasse aus den Metadaten, die am angegebenen Speicherort gespeichert sind.

MetadataReader(Byte*, Int32)

Initialisiert eine neue Instanz der MetadataReader-Klasse aus den Metadaten, die am angegebenen Speicherort gespeichert sind.

Eigenschaften

AssemblyFiles

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

AssemblyReferences

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

CustomAttributes

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

CustomDebugInformation

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

DebugMetadataHeader

Ruft die aus dem #Pdb-Datenstrom decodierten Informationen oder null ab, wenn der Datenstrom nicht vorhanden ist.

DeclarativeSecurityAttributes

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

Documents

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

EventDefinitions

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

ExportedTypes

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

FieldDefinitions

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

ImportScopes

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

IsAssembly

Ruft einen Wert ab, der angibt, ob diese Metadaten eine Assembly darstellen.

LocalConstants

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

LocalScopes

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

LocalVariables

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

ManifestResources

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

MemberReferences

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

MetadataKind

Ruft die Art der Metadaten ab.

MetadataLength

Ruft die Länge der zugrunde liegenden Daten ab.

MetadataPointer

Ruft den Zeiger auf die zugrunde liegenden Daten ab.

MetadataVersion

Ruft die Versionszeichenfolge aus dem Metadatenheader ab.

MethodDebugInformation

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

MethodDefinitions

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

Options

Ruft die an den Konstruktor übergebenen MetadataReaderOptions ab.

PropertyDefinitions

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

StringComparer

Ruft den Comparer ab, der zum Vergleichen von Zeichenfolgen verwendet wird, die in den Metadaten gespeichert sind.

TypeDefinitions

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

TypeReferences

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

UTF8Decoder

Ruft den Decoder ab, der vom Reader verwendet wird, um Zeichenfolgeninstanzen aus Bytefolgen zu generieren, die als UTF8 codiertsind.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetAssemblyDefinition()

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetAssemblyFile(AssemblyFileHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetAssemblyName(String)

Ruft den AssemblyName für eine angegebene Datei ab.

GetAssemblyReference(AssemblyReferenceHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetBlobBytes(BlobHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetBlobContent(BlobHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetBlobReader(BlobHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetBlobReader(StringHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetConstant(ConstantHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetCustomAttribute(CustomAttributeHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetCustomAttributes(EntityHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetCustomDebugInformation(CustomDebugInformationHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetCustomDebugInformation(EntityHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetDocument(DocumentHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetEventDefinition(EventDefinitionHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetExportedType(ExportedTypeHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetFieldDefinition(FieldDefinitionHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetGenericParameter(GenericParameterHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetGenericParameterConstraint(GenericParameterConstraintHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetGuid(GuidHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetImportScope(ImportScopeHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetInterfaceImplementation(InterfaceImplementationHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetLocalConstant(LocalConstantHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetLocalScope(LocalScopeHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetLocalScopes(MethodDebugInformationHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetLocalScopes(MethodDefinitionHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetLocalVariable(LocalVariableHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetManifestResource(ManifestResourceHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetMemberReference(MemberReferenceHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetMethodDebugInformation(MethodDebugInformationHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetMethodDebugInformation(MethodDefinitionHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetMethodDefinition(MethodDefinitionHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetMethodImplementation(MethodImplementationHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetMethodSpecification(MethodSpecificationHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetModuleDefinition()

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetModuleReference(ModuleReferenceHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetNamespaceDefinition(NamespaceDefinitionHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetNamespaceDefinitionRoot()

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetParameter(ParameterHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetPropertyDefinition(PropertyDefinitionHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetStandaloneSignature(StandaloneSignatureHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetString(DocumentNameBlobHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetString(NamespaceDefinitionHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetString(StringHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
GetTypeDefinition(TypeDefinitionHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetTypeReference(TypeReferenceHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetTypeSpecification(TypeSpecificationHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

GetUserString(UserStringHandle)

Liest Metadaten gemäß der ECMA 335 CLI-Spezifikation.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Erweiterungsmethoden

GetEditAndContinueLogEntries(MetadataReader)

Listet Einträge des EnC-Protokolls auf.

GetEditAndContinueMapEntries(MetadataReader)

Listet Einträge der EnC-Zuordnung auf.

GetHeapMetadataOffset(MetadataReader, HeapIndex)

Gibt den Offset vom Beginn der Metadaten zum angegebenen Heap zurück.

GetHeapSize(MetadataReader, HeapIndex)

Gibt die Größe des angegebenen Heaps zurück.

GetNextHandle(MetadataReader, BlobHandle)

Gibt das Handle für den Blob zurück, der auf den im Blob Heap angegebenen folgt, oder ein Nil-Handle, wenn es sich um das letzte Handle handelt.

GetNextHandle(MetadataReader, StringHandle)

Gibt das Handle für die Zeichenfolge zurück, die auf die im Zeichenfolgenheap angegebene folgt, oder ein Nil-Handle, wenn es sich um das letzte Handle handelt.

GetNextHandle(MetadataReader, UserStringHandle)

Gibt das Handle für den UserString zurück, der auf den im UserString-Heap angegebenen folgt, oder ein Nil-Handle, wenn es sich um das letzte Handle handelt.

GetTableMetadataOffset(MetadataReader, TableIndex)

Gibt den Offset vom Beginn der Metadaten zur angegebenen Tabelle zurück.

GetTableRowCount(MetadataReader, TableIndex)

Gibt die Anzahl von Zeilen in der angegebenen Tabelle zurück.

GetTableRowSize(MetadataReader, TableIndex)

Gibt die Größe einer Zeile in der angegebenen Tabelle zurück.

GetTypesWithEvents(MetadataReader)

Enumeriert Typen, die mindestens ein Ereignis definieren.

GetTypesWithProperties(MetadataReader)

Enumeriert Typen, die mindestens eine Eigenschaft definieren.

ResolveSignatureTypeKind(MetadataReader, EntityHandle, Byte)

Bestimmt bei Vorliegen eines Typhandles und einer in einem Signaturblob gefundenen Rohtypart, ob der Zieltyp ein Werttyp oder ein Verweistyp ist.

GetHeapOffset(MetadataReader, Handle)

Ruft den Offset von Metadatenheap-Daten ab, der dem angegebenen handle im Kontext des reader entspricht.

GetRowNumber(MetadataReader, EntityHandle)

Ruft die Zeilennummer eines Metadaten-Tabelleneintrags ab, der dem angegebenen handle im Kontext des reader entspricht.

GetToken(MetadataReader, EntityHandle)

Ruft das Metadatentoken des angegebenen handle im Kontext des reader ab.

GetToken(MetadataReader, Handle)

Ruft das Metadatentoken des angegebenen handle im Kontext des reader ab.

Gilt für: