MetadataReader Klass

Definition

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

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

Exempel

Det här exemplet visar hur du skapar MetadataReader för en sammansättning och läser alla typdefinitioner från den:

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

Kommentarer

Caution

Den här typen är inte utformad för att hantera ej betrodda indata. Felaktiga eller skadliga metadata kan orsaka oväntat beteende, inklusive out-of-bounds minnesåtkomst, krascher eller hängningar. Använd MetadataReader endast med betrodda metadata, till exempel metadata från betrodda sammansättningar.

MetadataReader läser innehållet i tabeller och heaps från angivna CLI-metadata. Den använder lågnivåkonstruktioner som typ- och metoddefinitioner. Ett API på högre nivå för att inspektera innehållet i sammansättningar med hjälp av reflektionskonstruktioner finns i MetadataLoadContext.

Du kan använda konstruktorer, till exempel MetadataReader(Byte*, Int32), för att skapa en instans av MetadataReader för en viss minnesplats. Om du vill läsa metadata från den bärbara körbara sammansättningsfilen skapar PEReader och använder du GetMetadataReader(PEReader) tilläggsmetoden.

Formatet för CLI-metadata definieras av ECMA-335-specifikationen. Mer information finns i Standard ECMA-335 – Common Language Infrastructure (CLI) på Ecma Internationals webbplats.

Konstruktorer

Name Description
MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder)

Initierar en ny instans av MetadataReader klassen från metadata som lagras på den angivna minnesplatsen.

MetadataReader(Byte*, Int32, MetadataReaderOptions)

Initierar en ny instans av MetadataReader klassen från metadata som lagras på den angivna minnesplatsen.

MetadataReader(Byte*, Int32)

Initierar en ny instans av MetadataReader klassen från metadata som lagras på den angivna minnesplatsen.

Egenskaper

Name Description
AssemblyFiles

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

AssemblyReferences

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

CustomAttributes

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

DeclarativeSecurityAttributes

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

EventDefinitions

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

ExportedTypes

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

FieldDefinitions

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

IsAssembly

Hämtar ett värde som anger om metadata representerar en sammansättning.

ManifestResources

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

MemberReferences

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

MetadataKind

Hämtar metadatatyp.

MetadataVersion

Hämtar versionssträngen från metadatahuvudet.

MethodDefinitions

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

Options

Hämtar skickad MetadataReaderOptions till konstruktorn.

PropertyDefinitions

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

StringComparer

Hämtar jämförelsen som används för att jämföra strängar som lagras i metadata.

TypeDefinitions

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

TypeReferences

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetAssemblyDefinition()

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetAssemblyFile(AssemblyFileHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetAssemblyReference(AssemblyReferenceHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetBlobBytes(BlobHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetBlobContent(BlobHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetBlobReader(BlobHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetConstant(ConstantHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetCustomAttribute(CustomAttributeHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetCustomAttributes(EntityHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetEventDefinition(EventDefinitionHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetExportedType(ExportedTypeHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetFieldDefinition(FieldDefinitionHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetGenericParameter(GenericParameterHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetGenericParameterConstraint(GenericParameterConstraintHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetGuid(GuidHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetInterfaceImplementation(InterfaceImplementationHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetManifestResource(ManifestResourceHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetMemberReference(MemberReferenceHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetMethodDefinition(MethodDefinitionHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetMethodImplementation(MethodImplementationHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetMethodSpecification(MethodSpecificationHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetModuleDefinition()

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetModuleReference(ModuleReferenceHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetNamespaceDefinition(NamespaceDefinitionHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetNamespaceDefinitionRoot()

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetParameter(ParameterHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetPropertyDefinition(PropertyDefinitionHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetStandaloneSignature(StandaloneSignatureHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetString(NamespaceDefinitionHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetString(StringHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
GetTypeDefinition(TypeDefinitionHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetTypeReference(TypeReferenceHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetTypeSpecification(TypeSpecificationHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

GetUserString(UserStringHandle)

Läser metadata enligt definitionen i ECMA 335 CLI-specifikationen.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Tilläggsmetoder

Name Description
GetEditAndContinueLogEntries(MetadataReader)

Räknar upp poster i EnC-loggen.

GetEditAndContinueMapEntries(MetadataReader)

Räknar upp poster i EnC-karta.

GetHeapMetadataOffset(MetadataReader, HeapIndex)

Returnerar förskjutningen från början av metadata till den angivna heapen.

GetHeapOffset(MetadataReader, Handle)

Hämtar förskjutningen av metadata heap-data som motsvarar den angivna handle i kontexten för reader.

GetHeapSize(MetadataReader, HeapIndex)

Returnerar storleken på den angivna heapen.

GetNextHandle(MetadataReader, BlobHandle)

Returnerar handtaget till Blob det som följer den angivna i heapen Blob eller ett nollhandtag om det är den sista.

GetNextHandle(MetadataReader, StringHandle)

Returnerar ett handtag till strängen som följer den angivna i strängens heap eller ett nollhandtag om det är den sista.

GetNextHandle(MetadataReader, UserStringHandle)

Returnerar ett handtag till UserString som följer det angivna i UserString-heapen eller ett nollhandtag om det är den sista.

GetRowNumber(MetadataReader, EntityHandle)

Hämtar radnumret för en metadatatabellpost som motsvarar den angivna handle i kontexten readerför .

GetTableMetadataOffset(MetadataReader, TableIndex)

Returnerar förskjutningen från början av metadata till den angivna tabellen.

GetTableRowCount(MetadataReader, TableIndex)

Returnerar antalet rader i den angivna tabellen.

GetTableRowSize(MetadataReader, TableIndex)

Returnerar storleken på en rad i den angivna tabellen.

GetToken(MetadataReader, Handle)

Hämtar metadatatoken för den som anges handle i kontexten readerför .

GetTypesWithEvents(MetadataReader)

Räkna upp typer som definierar en eller flera händelser.

GetTypesWithProperties(MetadataReader)

Räkna upp typer som definierar en eller flera egenskaper.

Gäller för