MetadataReader Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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. |
| CustomDebugInformation |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| DebugMetadataHeader |
Obtient les informations décodées à partir de #Pdb flux, ou |
| DeclarativeSecurityAttributes |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| Documents |
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. |
| ImportScopes |
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. |
| LocalConstants |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| LocalScopes |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| LocalVariables |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| 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. |
| MetadataLength |
Obtient la longueur des données sous-jacentes. |
| MetadataPointer |
Obtient le pointeur vers les données sous-jacentes. |
| MetadataVersion |
Obtient la chaîne de version lue à partir de l’en-tête de métadonnées. |
| MethodDebugInformation |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| 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. |
| UTF8Decoder |
Obtient le décodeur utilisé par le lecteur pour produire des instances de chaîne à partir de séquences d’octets codées en UTF8. |
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. |
| GetAssemblyName(String) |
Obtient le AssemblyName fichier donné. |
| 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. |
| GetBlobReader(StringHandle) |
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. |
| GetCustomDebugInformation(CustomDebugInformationHandle) |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| GetCustomDebugInformation(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. |
| GetDocument(DocumentHandle) |
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) |
| GetImportScope(ImportScopeHandle) |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| GetInterfaceImplementation(InterfaceImplementationHandle) |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| GetLocalConstant(LocalConstantHandle) |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| GetLocalScope(LocalScopeHandle) |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| GetLocalScopes(MethodDebugInformationHandle) |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| GetLocalScopes(MethodDefinitionHandle) |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| GetLocalVariable(LocalVariableHandle) |
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. |
| GetMethodDebugInformation(MethodDebugInformationHandle) |
Lit les métadonnées définies par la spécification CLI ECMA 335. |
| GetMethodDebugInformation(MethodDefinitionHandle) |
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(DocumentNameBlobHandle) |
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é |
| 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é |
| GetTableMetadataOffset(MetadataReader, TableIndex) |
Retourne le décalage entre le début des métadonnées et 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. |
| GetToken(MetadataReader, EntityHandle) |
Obtient le jeton de métadonnées du spécifié |
| GetToken(MetadataReader, Handle) |
Obtient le jeton de métadonnées du spécifié |
| 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) |
Étant donné un handle de type et un type brut trouvés dans un objet blob de signature détermine si le type cible est un type valeur ou un type référence. |