Condividi tramite


MetadataReader Classe

Definizione

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

public ref class MetadataReader sealed
public sealed class MetadataReader
type MetadataReader = class
Public NotInheritable Class MetadataReader
Ereditarietà
MetadataReader

Esempio

In questo esempio viene illustrato come creare MetadataReader per un assembly e leggere tutte le definizioni di tipo da esso:

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

Commenti

MetadataReader legge il contenuto delle tabelle e degli heaps dai metadati dell'interfaccia della riga di comando specificati. Opera costrutti di basso livello, ad esempio definizioni di tipo e metodo. Per un'API di livello superiore per controllare il contenuto degli assembly usando costrutti di reflection, vedere MetadataLoadContext.

È possibile usare costruttori, ad esempio MetadataReader(Byte*, Int32), per creare un'istanza di per una determinata posizione di MetadataReader memoria. Per leggere i metadati dal file assembly eseguibile portabile, creare PEReader e usare il GetMetadataReader(PEReader) metodo di estensione.

Il formato dei metadati dell'interfaccia della riga di comando è definito dalla specifica ECMA-335. Per altre informazioni, vedere Standard ECMA-335 - Common Language Infrastructure (CLI) nel sito Web Ecma International.

Costruttori

MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder)

Inizializza una nuova istanza della classe MetadataReader dai metadati archiviati nella posizione di memoria specificata.

MetadataReader(Byte*, Int32, MetadataReaderOptions)

Inizializza una nuova istanza della classe MetadataReader dai metadati archiviati nella posizione di memoria specificata.

MetadataReader(Byte*, Int32)

Inizializza una nuova istanza della classe MetadataReader dai metadati archiviati nella posizione di memoria specificata.

Proprietà

AssemblyFiles

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

AssemblyReferences

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

CustomAttributes

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

CustomDebugInformation

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

DebugMetadataHeader

Ottiene le informazioni decodificate dal flusso #Pdb oppure null se il flusso non è presente.

DeclarativeSecurityAttributes

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

Documents

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

EventDefinitions

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

ExportedTypes

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

FieldDefinitions

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

ImportScopes

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

IsAssembly

Ottiene un valore che indica se i metadati rappresentano un assembly.

LocalConstants

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

LocalScopes

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

LocalVariables

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

ManifestResources

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

MemberReferences

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

MetadataKind

Ottiene il tipo di metadati.

MetadataLength

Ottiene la lunghezza dei dati sottostanti.

MetadataPointer

Ottiene il puntatore ai dati sottostanti.

MetadataVersion

Ottiene la stringa della versione letta dall'intestazione dei metadati.

MethodDebugInformation

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

MethodDefinitions

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

Options

Ottiene la funzione MetadataReaderOptions passata al costruttore.

PropertyDefinitions

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

StringComparer

Ottiene l'operatore di confronto usato per confrontare le stringhe archiviate nei metadati.

TypeDefinitions

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

TypeReferences

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

UTF8Decoder

Ottiene il decodificatore usato dal lettore per generare le istanze delle stringhe dalle sequenze di byte con codifica UTF8.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetAssemblyDefinition()

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetAssemblyFile(AssemblyFileHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetAssemblyName(String)

Ottiene l'oggetto AssemblyName per un dato file.

GetAssemblyReference(AssemblyReferenceHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetBlobBytes(BlobHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetBlobContent(BlobHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetBlobReader(BlobHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetBlobReader(StringHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetConstant(ConstantHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetCustomAttribute(CustomAttributeHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetCustomAttributes(EntityHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetCustomDebugInformation(CustomDebugInformationHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetCustomDebugInformation(EntityHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetDocument(DocumentHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetEventDefinition(EventDefinitionHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetExportedType(ExportedTypeHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetFieldDefinition(FieldDefinitionHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetGenericParameter(GenericParameterHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetGenericParameterConstraint(GenericParameterConstraintHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetGuid(GuidHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetImportScope(ImportScopeHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetInterfaceImplementation(InterfaceImplementationHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetLocalConstant(LocalConstantHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetLocalScope(LocalScopeHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetLocalScopes(MethodDebugInformationHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetLocalScopes(MethodDefinitionHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetLocalVariable(LocalVariableHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetManifestResource(ManifestResourceHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetMemberReference(MemberReferenceHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetMethodDebugInformation(MethodDebugInformationHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetMethodDebugInformation(MethodDefinitionHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetMethodDefinition(MethodDefinitionHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetMethodImplementation(MethodImplementationHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetMethodSpecification(MethodSpecificationHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetModuleDefinition()

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetModuleReference(ModuleReferenceHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetNamespaceDefinition(NamespaceDefinitionHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetNamespaceDefinitionRoot()

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetParameter(ParameterHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetPropertyDefinition(PropertyDefinitionHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetStandaloneSignature(StandaloneSignatureHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetString(DocumentNameBlobHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetString(NamespaceDefinitionHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetString(StringHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
GetTypeDefinition(TypeDefinitionHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetTypeReference(TypeReferenceHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetTypeSpecification(TypeSpecificationHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

GetUserString(UserStringHandle)

Legge i metadati come definito dalla specifica dell'interfaccia della riga di comando ECMA 335.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Metodi di estensione

GetEditAndContinueLogEntries(MetadataReader)

Enumera le voci del log EnC.

GetEditAndContinueMapEntries(MetadataReader)

Enumera le voci della mappa EnC.

GetHeapMetadataOffset(MetadataReader, HeapIndex)

Restituisce l'offset dall'inizio dei metadati all'heap specificato.

GetHeapSize(MetadataReader, HeapIndex)

Restituisce le dimensioni dell'heap specificato.

GetNextHandle(MetadataReader, BlobHandle)

Restituisce l'handle per il Blob che segue quello specificato nell'heap Blob o un handle Null se è l'ultimo.

GetNextHandle(MetadataReader, StringHandle)

Restituisce un handle per la stringa che segue quella specificata nell'heap delle stringhe oppure un handle Null se è l'ultima.

GetNextHandle(MetadataReader, UserStringHandle)

Restituisce un handle per il valore UserString che segue quello specificato nell'heap UserString oppure un handle Null se è l'ultimo.

GetTableMetadataOffset(MetadataReader, TableIndex)

Restituisce l'offset dall'inizio dei metadati alla tabella specificata.

GetTableRowCount(MetadataReader, TableIndex)

Restituisce il numero di righe nella tabella specificata.

GetTableRowSize(MetadataReader, TableIndex)

Restituisce le dimensioni di una riga nella tabella specificata.

GetTypesWithEvents(MetadataReader)

Enumera i tipi che definiscono uno o più eventi.

GetTypesWithProperties(MetadataReader)

Enumera i tipi che definiscono una o più proprietà.

ResolveSignatureTypeKind(MetadataReader, EntityHandle, Byte)

Dato un handle di tipo e un tipo non elaborato trovato in un BLOB di firma, determina se il tipo di destinazione è un tipo valore o un tipo riferimento.

GetHeapOffset(MetadataReader, Handle)

Ottiene l'offset dei dati dell'heap dei metadati che corrispondono all'handle specificato nel contesto di reader.

GetRowNumber(MetadataReader, EntityHandle)

Ottiene il numero di riga di una voce della tabella di metadati che corrisponde all'handle specificato nel contesto di reader.

GetToken(MetadataReader, EntityHandle)

Ottiene il token di metadati dell'handle specificato nel contesto di reader.

GetToken(MetadataReader, Handle)

Ottiene il token di metadati dell'handle specificato nel contesto di reader.

Si applica a