MetadataReader Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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 |
| 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 |
| 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 |
| 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. |