MetadataReader Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 |
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 |
GetRowNumber(MetadataReader, EntityHandle) |
Ruft die Zeilennummer eines Metadaten-Tabelleneintrags ab, der dem angegebenen |
GetToken(MetadataReader, EntityHandle) |
Ruft das Metadatentoken des angegebenen |
GetToken(MetadataReader, Handle) |
Ruft das Metadatentoken des angegebenen |