Udostępnij za pośrednictwem


MetadataReader Klasa

Definicja

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

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

Przykłady

W tym przykładzie pokazano, jak utworzyć MetadataReader zestaw i odczytać z niego wszystkie definicje typów:

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

Uwagi

MetadataReader Odczytuje zawartość tabel i stert z określonych metadanych interfejsu wiersza polecenia. Obsługuje konstrukcje niskiego poziomu, takie jak definicje typów i metod. Aby uzyskać interfejs API wyższego poziomu w celu sprawdzenia zawartości zestawów przy użyciu konstrukcji odbicia, zobacz MetadataLoadContext.

Konstruktorów, takich jak MetadataReader(Byte*, Int32), można użyć do utworzenia MetadataReader wystąpienia dla danej lokalizacji pamięci. Aby odczytać metadane z pliku przenośnego zestawu wykonywalnego, utwórz PEReader metodę GetMetadataReader(PEReader) rozszerzenia i użyj jej.

Format metadanych interfejsu wiersza polecenia jest definiowany przez specyfikację ECMA-335. Aby uzyskać więcej informacji, zobacz Standard ECMA-335 — Common Language Infrastructure (CLI) w witrynie sieci Web Ecma International.

Konstruktory

MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder)

Inicjuje MetadataReader nowe wystąpienie klasy z metadanych przechowywanych w danej lokalizacji pamięci.

MetadataReader(Byte*, Int32, MetadataReaderOptions)

Inicjuje MetadataReader nowe wystąpienie klasy z metadanych przechowywanych w danej lokalizacji pamięci.

MetadataReader(Byte*, Int32)

Inicjuje MetadataReader nowe wystąpienie klasy z metadanych przechowywanych w danej lokalizacji pamięci.

Właściwości

AssemblyFiles

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

AssemblyReferences

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

CustomAttributes

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

CustomDebugInformation

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

DebugMetadataHeader

Pobiera informacje zdekodowane ze strumienia #Pdb lub null jeśli strumień nie jest obecny.

DeclarativeSecurityAttributes

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

Documents

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

EventDefinitions

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

ExportedTypes

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

FieldDefinitions

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

ImportScopes

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

IsAssembly

Pobiera wartość wskazującą, czy metadane reprezentują zestaw.

LocalConstants

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

LocalScopes

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

LocalVariables

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

ManifestResources

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

MemberReferences

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

MetadataKind

Pobiera rodzaj metadanych.

MetadataLength

Pobiera długość danych bazowych.

MetadataPointer

Pobiera wskaźnik do danych bazowych.

MetadataVersion

Pobiera ciąg wersji odczytany z nagłówka metadanych.

MethodDebugInformation

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

MethodDefinitions

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

Options

MetadataReaderOptions Pobiera przekazany do konstruktora.

PropertyDefinitions

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

StringComparer

Pobiera element porównujący używany do porównywania ciągów przechowywanych w metadanych.

TypeDefinitions

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

TypeReferences

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

UTF8Decoder

Pobiera dekoder używany przez czytnik do tworzenia wystąpień ciągów z sekwencji bajtów zakodowanych w formacie UTF8.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetAssemblyDefinition()

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetAssemblyFile(AssemblyFileHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetAssemblyName(String)

Pobiera wartość AssemblyName dla danego pliku.

GetAssemblyReference(AssemblyReferenceHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetBlobBytes(BlobHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetBlobContent(BlobHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetBlobReader(BlobHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetBlobReader(StringHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetConstant(ConstantHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetCustomAttribute(CustomAttributeHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetCustomAttributes(EntityHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetCustomDebugInformation(CustomDebugInformationHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetCustomDebugInformation(EntityHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetDocument(DocumentHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetEventDefinition(EventDefinitionHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetExportedType(ExportedTypeHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetFieldDefinition(FieldDefinitionHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetGenericParameter(GenericParameterHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetGenericParameterConstraint(GenericParameterConstraintHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetGuid(GuidHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetImportScope(ImportScopeHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetInterfaceImplementation(InterfaceImplementationHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetLocalConstant(LocalConstantHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetLocalScope(LocalScopeHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetLocalScopes(MethodDebugInformationHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetLocalScopes(MethodDefinitionHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetLocalVariable(LocalVariableHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetManifestResource(ManifestResourceHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetMemberReference(MemberReferenceHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetMethodDebugInformation(MethodDebugInformationHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetMethodDebugInformation(MethodDefinitionHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetMethodDefinition(MethodDefinitionHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetMethodImplementation(MethodImplementationHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetMethodSpecification(MethodSpecificationHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetModuleDefinition()

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetModuleReference(ModuleReferenceHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetNamespaceDefinition(NamespaceDefinitionHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetNamespaceDefinitionRoot()

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetParameter(ParameterHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetPropertyDefinition(PropertyDefinitionHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetStandaloneSignature(StandaloneSignatureHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetString(DocumentNameBlobHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetString(NamespaceDefinitionHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetString(StringHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
GetTypeDefinition(TypeDefinitionHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetTypeReference(TypeReferenceHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetTypeSpecification(TypeSpecificationHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

GetUserString(UserStringHandle)

Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Metody rozszerzania

GetEditAndContinueLogEntries(MetadataReader)

Wylicza wpisy dziennika EnC.

GetEditAndContinueMapEntries(MetadataReader)

Wylicza wpisy mapy EnC.

GetHeapMetadataOffset(MetadataReader, HeapIndex)

Zwraca przesunięcie od początku metadanych do określonej sterty.

GetHeapSize(MetadataReader, HeapIndex)

Zwraca rozmiar określonej sterty.

GetNextHandle(MetadataReader, BlobHandle)

Zwraca uchwyt, który Blob następuje po danym w Blob stercie lub zerowym dojściu, jeśli jest to ostatni.

GetNextHandle(MetadataReader, StringHandle)

Zwraca dojście do ciągu, który następuje po danym stosie ciągu lub zerowym dojściu, jeśli jest to ostatni.

GetNextHandle(MetadataReader, UserStringHandle)

Zwraca uchwyt do userString, który następuje po danym w stercie UserString lub zerowym dojściu, jeśli jest to ostatni.

GetTableMetadataOffset(MetadataReader, TableIndex)

Zwraca przesunięcie od początku metadanych do określonej tabeli.

GetTableRowCount(MetadataReader, TableIndex)

Zwraca liczbę wierszy w określonej tabeli.

GetTableRowSize(MetadataReader, TableIndex)

Zwraca rozmiar wiersza w określonej tabeli.

GetTypesWithEvents(MetadataReader)

Wylicza typy definiujące co najmniej jedno zdarzenie.

GetTypesWithProperties(MetadataReader)

Wyliczanie typów definiujących co najmniej jedną właściwościę.

ResolveSignatureTypeKind(MetadataReader, EntityHandle, Byte)

Biorąc pod uwagę uchwyt typu i typ typu nieprzetworzonego znalezionego w obiekcie blob podpisu, określa, czy typ docelowy jest typem wartości, czy typem referencyjnym.

GetHeapOffset(MetadataReader, Handle)

Pobiera przesunięcie danych sterty metadanych, które odpowiadają określonemu handle w kontekście reader.

GetRowNumber(MetadataReader, EntityHandle)

Pobiera numer wiersza wpisu tabeli metadanych, który odpowiada określonemu handle w kontekście reader.

GetToken(MetadataReader, EntityHandle)

Pobiera token metadanych określonego handle w kontekście reader.

GetToken(MetadataReader, Handle)

Pobiera token metadanych określonego handle w kontekście reader.

Dotyczy