MetadataReader Classe

Définition

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

public ref class MetadataReader sealed
public sealed class MetadataReader
type MetadataReader = class
Public NotInheritable Class MetadataReader
Héritage
MetadataReader

Exemples

Cet exemple montre comment créer MetadataReader pour un assembly et lire toutes les définitions de type à partir de celui-ci :

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

Remarques

MetadataReader lit le contenu des tables et des tas à partir des métadonnées CLI spécifiées. Il opère des constructions de bas niveau, telles que des définitions de type et de méthode. Pour qu’une API de niveau supérieur inspecte le contenu des assemblys à l’aide de constructions de réflexion, consultez MetadataLoadContext.

Vous pouvez utiliser des constructeurs, tels que MetadataReader(Byte*, Int32), pour créer un instance de MetadataReader pour un emplacement de mémoire donné. Pour lire les métadonnées du fichier d’assembly exécutable portable, créez PEReader et utilisez la méthode d’extension GetMetadataReader(PEReader) .

Le format des métadonnées CLI est défini par la spécification ECMA-335. Pour plus d’informations, consultez Standard ECMA-335 - Common Language Infrastructure (CLI) sur le site Web Ecma International.

Constructeurs

MetadataReader(Byte*, Int32)

Initialise une nouvelle instance de la classe MetadataReader des métadonnées stockées dans l’emplacement de mémoire donné.

MetadataReader(Byte*, Int32, MetadataReaderOptions)

Initialise une nouvelle instance de la classe MetadataReader des métadonnées stockées dans l’emplacement de mémoire donné.

MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder)

Initialise une nouvelle instance de la classe MetadataReader des métadonnées stockées dans l’emplacement de mémoire donné.

Propriétés

AssemblyFiles

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

AssemblyReferences

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

CustomAttributes

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

CustomDebugInformation

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

DebugMetadataHeader

Obtient les informations décodées à partir du flux #Pdb, ou null si le flux de données n’est pas présent.

DeclarativeSecurityAttributes

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

Documents

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

EventDefinitions

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

ExportedTypes

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

FieldDefinitions

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

ImportScopes

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

IsAssembly

Obtient une valeur qui indique si les métadonnées représentent un assembly.

LocalConstants

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

LocalScopes

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

LocalVariables

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

ManifestResources

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

MemberReferences

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

MetadataKind

Obtient le type des métadonnées.

MetadataLength

Obtient la longueur des données sous-jacentes.

MetadataPointer

Obtient le pointeur des données sous-jacentes.

MetadataVersion

Obtient la chaîne de version lire à partir de l’en-tête de métadonnées.

MethodDebugInformation

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

MethodDefinitions

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

Options

Obtient le MetadataReaderOptions passé dans le constructeur.

PropertyDefinitions

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

StringComparer

Obtient le comparateur utilisé pour comparer les chaînes stockées dans les métadonnées.

TypeDefinitions

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

TypeReferences

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

UTF8Decoder

Obtient le décodeur utilisé par le lecteur pour produire des instances de chaîne à partir de séquences d’octets encodées en UTF-8.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetAssemblyDefinition()

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetAssemblyFile(AssemblyFileHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetAssemblyName(String)

Obtient le AssemblyName d'un fichier donné.

GetAssemblyReference(AssemblyReferenceHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetBlobBytes(BlobHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetBlobContent(BlobHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetBlobReader(BlobHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetBlobReader(StringHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetConstant(ConstantHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetCustomAttribute(CustomAttributeHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetCustomAttributes(EntityHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetCustomDebugInformation(CustomDebugInformationHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetCustomDebugInformation(EntityHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetDocument(DocumentHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetEventDefinition(EventDefinitionHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetExportedType(ExportedTypeHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetFieldDefinition(FieldDefinitionHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetGenericParameter(GenericParameterHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetGenericParameterConstraint(GenericParameterConstraintHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetGuid(GuidHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetImportScope(ImportScopeHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetInterfaceImplementation(InterfaceImplementationHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetLocalConstant(LocalConstantHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetLocalScope(LocalScopeHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetLocalScopes(MethodDebugInformationHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetLocalScopes(MethodDefinitionHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetLocalVariable(LocalVariableHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetManifestResource(ManifestResourceHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetMemberReference(MemberReferenceHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetMethodDebugInformation(MethodDebugInformationHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetMethodDebugInformation(MethodDefinitionHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetMethodDefinition(MethodDefinitionHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetMethodImplementation(MethodImplementationHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetMethodSpecification(MethodSpecificationHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetModuleDefinition()

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetModuleReference(ModuleReferenceHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetNamespaceDefinition(NamespaceDefinitionHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetNamespaceDefinitionRoot()

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetParameter(ParameterHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetPropertyDefinition(PropertyDefinitionHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetStandaloneSignature(StandaloneSignatureHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetString(DocumentNameBlobHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetString(NamespaceDefinitionHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetString(StringHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
GetTypeDefinition(TypeDefinitionHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetTypeReference(TypeReferenceHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetTypeSpecification(TypeSpecificationHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

GetUserString(UserStringHandle)

Lit les métadonnées comme défini par la spécification de l’interface CLI ECMA 335.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Méthodes d’extension

GetEditAndContinueLogEntries(MetadataReader)

Énumère les entrées du journal EnC.

GetEditAndContinueMapEntries(MetadataReader)

Énumère les entrées du journal EnC.

GetHeapMetadataOffset(MetadataReader, HeapIndex)

Retourne le décalage du début des métadonnées au tas spécifié.

GetHeapSize(MetadataReader, HeapIndex)

Retourne la taille du tas spécifié.

GetNextHandle(MetadataReader, BlobHandle)

Retourne le handle à l’élément Blob qui suit celui fourni dans le tas Blob, ou un handle nul si c’est le dernier.

GetNextHandle(MetadataReader, StringHandle)

Retourne le handle à la chaîne qui suit celle fournie dans le tas String, ou un handle nul si c’est le dernier.

GetNextHandle(MetadataReader, UserStringHandle)

Retourne le handle à l’élément UserString qui suit celle fournie dans le tas UserString, ou un handle nul si c’est le dernier.

GetTableMetadataOffset(MetadataReader, TableIndex)

Retourne le décalage du début des métadonnées à la table spécifiée.

GetTableRowCount(MetadataReader, TableIndex)

Retourne le nombre de lignes dans la table spécifiée.

GetTableRowSize(MetadataReader, TableIndex)

Retourne la taille d’une ligne dans la table spécifiée.

GetTypesWithEvents(MetadataReader)

Énumérez les types qui définissent un ou plusieurs événements.

GetTypesWithProperties(MetadataReader)

Énumérez les types qui définissent une ou plusieurs propriétés.

ResolveSignatureTypeKind(MetadataReader, EntityHandle, Byte)

Selon un handle de type et un type brut dans une signature blob, détermine si le type cible est un type valeur ou un type référence.

GetHeapOffset(MetadataReader, Handle)

Obtient le décalage des données du tas de métadonnées correspondant à l’élément handle spécifié dans le contexte de reader.

GetRowNumber(MetadataReader, EntityHandle)

Obtient le numéro de ligne d'une entrée de table de métadonnées correspondant à l’élément handle spécifié dans le contexte de reader.

GetToken(MetadataReader, EntityHandle)

Obtient le jeton de métadonnées de l’élément handle spécifié dans le contexte de reader.

GetToken(MetadataReader, Handle)

Obtient le jeton de métadonnées de l’élément handle spécifié dans le contexte de reader.

S’applique à