Sdílet prostřednictvím


MetadataReader Třída

Definice

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

public ref class MetadataReader sealed
public sealed class MetadataReader
type MetadataReader = class
Public NotInheritable Class MetadataReader
Dědičnost
MetadataReader

Příklady

Tento příklad ukazuje, jak vytvořit MetadataReader pro sestavení a přečíst z něj všechny definice typů:

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

Poznámky

MetadataReader čte obsah tabulek a spoustu dat ze zadaných metadat rozhraní příkazového řádku. Pracuje s konstrukcemi nízké úrovně, jako jsou definice typu a metody. Rozhraní API vyšší úrovně pro kontrolu obsahu sestavení pomocí konstruktorů reflexe najdete v tématu MetadataLoadContext.

Konstruktory, jako MetadataReader(Byte*, Int32)je , můžete použít k vytvoření instance MetadataReader pro dané umístění paměti. Chcete-li číst metadata ze souboru sestavení Portable Executable, vytvořte PEReader a použijte rozšiřující metodu GetMetadataReader(PEReader) .

Formát metadat rozhraní příkazového řádku je definovaný specifikací ECMA-335. Další informace najdete v tématu Standard ECMA-335 – Common Language Infrastructure (CLI) na webu Ecma International.

Konstruktory

MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder)

Inicializuje novou instanci MetadataReader třídy z metadat uložených v daném umístění paměti.

MetadataReader(Byte*, Int32, MetadataReaderOptions)

Inicializuje novou instanci MetadataReader třídy z metadat uložených v daném umístění paměti.

MetadataReader(Byte*, Int32)

Inicializuje novou instanci MetadataReader třídy z metadat uložených v daném umístění paměti.

Vlastnosti

AssemblyFiles

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

AssemblyReferences

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

CustomAttributes

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

CustomDebugInformation

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

DebugMetadataHeader

Získá informace dekódované z #Pdb datového proudu, nebo null pokud datový proud není přítomen.

DeclarativeSecurityAttributes

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

Documents

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

EventDefinitions

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

ExportedTypes

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

FieldDefinitions

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

ImportScopes

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

IsAssembly

Získá hodnotu, která označuje, zda metadata představuje sestavení.

LocalConstants

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

LocalScopes

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

LocalVariables

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

ManifestResources

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

MemberReferences

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

MetadataKind

Získá druh metadat.

MetadataLength

Získá délku podkladových dat.

MetadataPointer

Získá ukazatel na podkladová data.

MetadataVersion

Získá řetězec verze přečtený z hlavičky metadat.

MethodDebugInformation

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

MethodDefinitions

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

Options

Získá předaný MetadataReaderOptions konstruktoru.

PropertyDefinitions

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

StringComparer

Získá porovnávací nástroj použitý k porovnání řetězců uložených v metadatech.

TypeDefinitions

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

TypeReferences

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

UTF8Decoder

Získá dekodér používaný čtečkou k vytvoření řetězce instance z UTF8-kódování sekvence bajtů.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetAssemblyDefinition()

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetAssemblyFile(AssemblyFileHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetAssemblyName(String)

Získá pro AssemblyName daný soubor.

GetAssemblyReference(AssemblyReferenceHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetBlobBytes(BlobHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetBlobContent(BlobHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetBlobReader(BlobHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetBlobReader(StringHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetConstant(ConstantHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetCustomAttribute(CustomAttributeHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetCustomAttributes(EntityHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetCustomDebugInformation(CustomDebugInformationHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetCustomDebugInformation(EntityHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetDocument(DocumentHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetEventDefinition(EventDefinitionHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetExportedType(ExportedTypeHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetFieldDefinition(FieldDefinitionHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetGenericParameter(GenericParameterHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetGenericParameterConstraint(GenericParameterConstraintHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetGuid(GuidHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetImportScope(ImportScopeHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetInterfaceImplementation(InterfaceImplementationHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetLocalConstant(LocalConstantHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetLocalScope(LocalScopeHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetLocalScopes(MethodDebugInformationHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetLocalScopes(MethodDefinitionHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetLocalVariable(LocalVariableHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetManifestResource(ManifestResourceHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetMemberReference(MemberReferenceHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetMethodDebugInformation(MethodDebugInformationHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetMethodDebugInformation(MethodDefinitionHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetMethodDefinition(MethodDefinitionHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetMethodImplementation(MethodImplementationHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetMethodSpecification(MethodSpecificationHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetModuleDefinition()

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetModuleReference(ModuleReferenceHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetNamespaceDefinition(NamespaceDefinitionHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetNamespaceDefinitionRoot()

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetParameter(ParameterHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetPropertyDefinition(PropertyDefinitionHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetStandaloneSignature(StandaloneSignatureHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetString(DocumentNameBlobHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetString(NamespaceDefinitionHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetString(StringHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
GetTypeDefinition(TypeDefinitionHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetTypeReference(TypeReferenceHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetTypeSpecification(TypeSpecificationHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

GetUserString(UserStringHandle)

Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Metody rozšíření

GetEditAndContinueLogEntries(MetadataReader)

Vytvoří výčet položek protokolu EnC.

GetEditAndContinueMapEntries(MetadataReader)

Vytvoří výčet položek mapy EnC.

GetHeapMetadataOffset(MetadataReader, HeapIndex)

Vrátí posun od začátku metadat k zadané haldě.

GetHeapSize(MetadataReader, HeapIndex)

Vrátí velikost zadané haldy.

GetNextHandle(MetadataReader, BlobHandle)

Vrátí popisovač, Blob který následuje za daným v haldě Blob , nebo nil úchyt, pokud je poslední.

GetNextHandle(MetadataReader, StringHandle)

Vrátí popisovač řetězce, který následuje za daným v řetězcové haldě, nebo popisovač nil, pokud je poslední.

GetNextHandle(MetadataReader, UserStringHandle)

Vrátí popisovač uživatelského řetězce, který následuje za daným v haldě UserString, nebo popisovač nil, pokud je poslední.

GetTableMetadataOffset(MetadataReader, TableIndex)

Vrátí posun od začátku metadat k zadané tabulce.

GetTableRowCount(MetadataReader, TableIndex)

Vrátí počet řádků v zadané tabulce.

GetTableRowSize(MetadataReader, TableIndex)

Vrátí velikost řádku v zadané tabulce.

GetTypesWithEvents(MetadataReader)

Výčet typů, které definují jednu nebo více událostí.

GetTypesWithProperties(MetadataReader)

Vytvořit výčet typů, které definují jednu nebo více vlastností.

ResolveSignatureTypeKind(MetadataReader, EntityHandle, Byte)

Při zadání popisovače typu a nezpracovaného typu nalezeného v objektu blob podpisu se určuje, jestli je cílový typ hodnotový typ nebo typ odkazu.

GetHeapOffset(MetadataReader, Handle)

Získá posun dat haldy metadat, která odpovídá zadanému handle v kontextu reader.

GetRowNumber(MetadataReader, EntityHandle)

Získá číslo řádku položky tabulky metadat, která odpovídá zadanému handle v kontextu reader.

GetToken(MetadataReader, EntityHandle)

Získá token handle metadat zadaného v kontextu .reader

GetToken(MetadataReader, Handle)

Získá token handle metadat zadaného v kontextu .reader

Platí pro