MetadataReader Classe

Définition

Lit les métadonnées définies par la spécification 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 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

Avertissement

Ce type n’est pas conçu pour gérer les entrées non approuvées. Les métadonnées incorrectes ou malveillantes peuvent entraîner un comportement inattendu, notamment l’accès à la mémoire hors limites, les blocages ou les blocages. MetadataReader Utilisez uniquement les métadonnées approuvées, telles que les métadonnées des assemblys approuvés.

MetadataReader lit le contenu des tables et des tas à partir des métadonnées CLI spécifiées. Il exploite 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 une instance d’un emplacement de MetadataReader mémoire donné. Pour lire les métadonnées à partir 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

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

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

MetadataReader(Byte*, Int32, MetadataReaderOptions)

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

MetadataReader(Byte*, Int32)

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

Propriétés

Nom Description
AssemblyFiles

Lit les métadonnées définies par la spécification CLI ECMA 335.

AssemblyReferences

Lit les métadonnées définies par la spécification CLI ECMA 335.

CustomAttributes

Lit les métadonnées définies par la spécification CLI ECMA 335.

DeclarativeSecurityAttributes

Lit les métadonnées définies par la spécification CLI ECMA 335.

EventDefinitions

Lit les métadonnées définies par la spécification CLI ECMA 335.

ExportedTypes

Lit les métadonnées définies par la spécification CLI ECMA 335.

FieldDefinitions

Lit les métadonnées définies par la spécification CLI ECMA 335.

IsAssembly

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

ManifestResources

Lit les métadonnées définies par la spécification CLI ECMA 335.

MemberReferences

Lit les métadonnées définies par la spécification CLI ECMA 335.

MetadataKind

Obtient le type de métadonnées.

MetadataVersion

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

MethodDefinitions

Lit les métadonnées définies par la spécification CLI ECMA 335.

Options

Obtient le MetadataReaderOptions constructeur passé.

PropertyDefinitions

Lit les métadonnées définies par la spécification 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 définies par la spécification CLI ECMA 335.

TypeReferences

Lit les métadonnées définies par la spécification CLI ECMA 335.

Méthodes

Nom Description
Equals(Object)

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

(Hérité de Object)
GetAssemblyDefinition()

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetAssemblyFile(AssemblyFileHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetAssemblyReference(AssemblyReferenceHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetBlobBytes(BlobHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetBlobContent(BlobHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetBlobReader(BlobHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetConstant(ConstantHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetCustomAttribute(CustomAttributeHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetCustomAttributes(EntityHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetEventDefinition(EventDefinitionHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetExportedType(ExportedTypeHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetFieldDefinition(FieldDefinitionHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetGenericParameter(GenericParameterHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetGenericParameterConstraint(GenericParameterConstraintHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetGuid(GuidHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetInterfaceImplementation(InterfaceImplementationHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetManifestResource(ManifestResourceHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetMemberReference(MemberReferenceHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetMethodDefinition(MethodDefinitionHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetMethodImplementation(MethodImplementationHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetMethodSpecification(MethodSpecificationHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetModuleDefinition()

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetModuleReference(ModuleReferenceHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetNamespaceDefinition(NamespaceDefinitionHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetNamespaceDefinitionRoot()

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetParameter(ParameterHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetPropertyDefinition(PropertyDefinitionHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetStandaloneSignature(StandaloneSignatureHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetString(NamespaceDefinitionHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetString(StringHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetType()

Obtient la Type de l’instance actuelle.

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

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetTypeReference(TypeReferenceHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetTypeSpecification(TypeSpecificationHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

GetUserString(UserStringHandle)

Lit les métadonnées définies par la spécification CLI ECMA 335.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

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

(Hérité de Object)

Méthodes d’extension

Nom Description
GetEditAndContinueLogEntries(MetadataReader)

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

GetEditAndContinueMapEntries(MetadataReader)

Énumère les entrées de la carte EnC.

GetHeapMetadataOffset(MetadataReader, HeapIndex)

Retourne le décalage entre le début des métadonnées et le tas spécifié.

GetHeapOffset(MetadataReader, Handle)

Obtient le décalage des données de tas de métadonnées qui correspondent au spécifié handle dans le contexte de reader.

GetHeapSize(MetadataReader, HeapIndex)

Retourne la taille du tas spécifié.

GetNextHandle(MetadataReader, BlobHandle)

Retourne la poignée qui Blob suit celle donnée dans le Blob tas ou un handle nil s’il s’agit du dernier.

GetNextHandle(MetadataReader, StringHandle)

Retourne un handle à la chaîne qui suit celle donnée dans le tas de chaînes, ou un handle nil s’il s’agit du dernier.

GetNextHandle(MetadataReader, UserStringHandle)

Retourne le handle à UserString qui suit celui donné dans le tas UserString ou un handle nil s’il s’agit du dernier.

GetRowNumber(MetadataReader, EntityHandle)

Obtient le numéro de ligne d’une entrée de table de métadonnées qui correspond au spécifié handle dans le contexte de reader.

GetTableMetadataOffset(MetadataReader, TableIndex)

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

GetTableRowCount(MetadataReader, TableIndex)

Renvoie le nombre de lignes du tableau spécifié.

GetTableRowSize(MetadataReader, TableIndex)

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

GetToken(MetadataReader, Handle)

Obtient le jeton de métadonnées du spécifié handle dans le contexte de reader.

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.

S’applique à