MetadataReader Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 |
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' |
GetRowNumber(MetadataReader, EntityHandle) |
Ottiene il numero di riga di una voce della tabella di metadati che corrisponde all' |
GetToken(MetadataReader, EntityHandle) |
Ottiene il token di metadati dell' |
GetToken(MetadataReader, Handle) |
Ottiene il token di metadati dell' |