MetadataReader Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Lê os metadados conforme definido pela especificação de CLI do ECMA 335.
public ref class MetadataReader sealed
public sealed class MetadataReader
type MetadataReader = class
Public NotInheritable Class MetadataReader
- Herança
-
MetadataReader
Exemplos
Este exemplo mostra como criar MetadataReader para um assembly e ler todas as definições de tipo dele:
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}");
}
Comentários
MetadataReader lê o conteúdo de tabelas e heaps dos metadados da CLI especificados. Ele opera constructos de baixo nível, como definições de tipo e método. Para obter uma API de nível superior para inspecionar o conteúdo de assemblies usando constructos de reflexão, consulte MetadataLoadContext.
Você pode usar construtores, como MetadataReader(Byte*, Int32), para criar uma instância de para um determinado local de MetadataReader memória. Para ler metadados do arquivo de assembly executável portátil, crie PEReader e use o GetMetadataReader(PEReader) método de extensão.
O formato dos metadados da CLI é definido pela especificação ECMA-335. Para obter mais informações, consulte Standard ECMA-335 – CLI (Common Language Infrastructure) no site do Ecma International.
Construtores
MetadataReader(Byte*, Int32) |
Inicializa uma nova instância da classe MetadataReader usando os metadados armazenados no local da memória determinado. |
MetadataReader(Byte*, Int32, MetadataReaderOptions) |
Inicializa uma nova instância da classe MetadataReader usando os metadados armazenados no local da memória determinado. |
MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder) |
Inicializa uma nova instância da classe MetadataReader usando os metadados armazenados no local da memória determinado. |
Propriedades
AssemblyFiles |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
AssemblyReferences |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
CustomAttributes |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
CustomDebugInformation |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
DebugMetadataHeader |
Obtém as informações decodificadas de fluxo #Pdb ou |
DeclarativeSecurityAttributes |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
Documents |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
EventDefinitions |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
ExportedTypes |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
FieldDefinitions |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
ImportScopes |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
IsAssembly |
Obtém um valor que indica se os metadados representam um assembly. |
LocalConstants |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
LocalScopes |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
LocalVariables |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
ManifestResources |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
MemberReferences |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
MetadataKind |
Obtém o tipo de metadados. |
MetadataLength |
Obtém o comprimento dos dados subjacentes. |
MetadataPointer |
Obtém o ponteiro para os dados subjacentes. |
MetadataVersion |
Obtém a leitura da cadeia de caracteres de versão do cabeçalho de metadados. |
MethodDebugInformation |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
MethodDefinitions |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
Options |
Obtém o MetadataReaderOptions passado para o construtor. |
PropertyDefinitions |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
StringComparer |
Obtém o comparador usado para comparar as cadeias de caracteres armazenadas nos metadados. |
TypeDefinitions |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
TypeReferences |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
UTF8Decoder |
Obtém o decodificador usado pelo leitor para produzir instâncias de cadeia de caracteres de sequências de bytes codificados em UTF8. |
Métodos
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetAssemblyDefinition() |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetAssemblyFile(AssemblyFileHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetAssemblyName(String) |
Obtém o AssemblyName para determinado arquivo. |
GetAssemblyReference(AssemblyReferenceHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetBlobBytes(BlobHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetBlobContent(BlobHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetBlobReader(BlobHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetBlobReader(StringHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetConstant(ConstantHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetCustomAttribute(CustomAttributeHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetCustomAttributes(EntityHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetCustomDebugInformation(CustomDebugInformationHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetCustomDebugInformation(EntityHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetDocument(DocumentHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetEventDefinition(EventDefinitionHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetExportedType(ExportedTypeHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetFieldDefinition(FieldDefinitionHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetGenericParameter(GenericParameterHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetGenericParameterConstraint(GenericParameterConstraintHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetGuid(GuidHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetImportScope(ImportScopeHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetInterfaceImplementation(InterfaceImplementationHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetLocalConstant(LocalConstantHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetLocalScope(LocalScopeHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetLocalScopes(MethodDebugInformationHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetLocalScopes(MethodDefinitionHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetLocalVariable(LocalVariableHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetManifestResource(ManifestResourceHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetMemberReference(MemberReferenceHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetMethodDebugInformation(MethodDebugInformationHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetMethodDebugInformation(MethodDefinitionHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetMethodDefinition(MethodDefinitionHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetMethodImplementation(MethodImplementationHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetMethodSpecification(MethodSpecificationHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetModuleDefinition() |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetModuleReference(ModuleReferenceHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetNamespaceDefinition(NamespaceDefinitionHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetNamespaceDefinitionRoot() |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetParameter(ParameterHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetPropertyDefinition(PropertyDefinitionHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetStandaloneSignature(StandaloneSignatureHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetString(DocumentNameBlobHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetString(NamespaceDefinitionHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetString(StringHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
GetTypeDefinition(TypeDefinitionHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetTypeReference(TypeReferenceHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetTypeSpecification(TypeSpecificationHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
GetUserString(UserStringHandle) |
Lê os metadados conforme definido pela especificação de CLI do ECMA 335. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Métodos de Extensão
GetEditAndContinueLogEntries(MetadataReader) |
Enumera as entradas do log do EnC. |
GetEditAndContinueMapEntries(MetadataReader) |
Enumera as entradas do mapa do EnC. |
GetHeapMetadataOffset(MetadataReader, HeapIndex) |
Retorna o deslocamento do início dos metadados para o heap especificado. |
GetHeapSize(MetadataReader, HeapIndex) |
Retorna o tamanho do heap especificado. |
GetNextHandle(MetadataReader, BlobHandle) |
Retorna o identificador para o Blob que segue o fornecido no heap de Blob ou um identificador nil caso ele seja o último. |
GetNextHandle(MetadataReader, StringHandle) |
Retorna o identificador para a cadeia de caracteres que segue o fornecido no heap de cadeia de caracteres ou um identificador nil caso ele seja o último. |
GetNextHandle(MetadataReader, UserStringHandle) |
Retorna o identificador para a UserString que segue o fornecido no heap de UserString ou um identificador nil caso ele seja o último. |
GetTableMetadataOffset(MetadataReader, TableIndex) |
Retorna o deslocamento do início dos metadados até a tabela especificada. |
GetTableRowCount(MetadataReader, TableIndex) |
Retorna o número de linhas na tabela especificada. |
GetTableRowSize(MetadataReader, TableIndex) |
Retorna o tamanho de uma linha na tabela especificada. |
GetTypesWithEvents(MetadataReader) |
Tipos enumerados que definem um ou mais eventos. |
GetTypesWithProperties(MetadataReader) |
Tipos enumerados que definem uma ou mais propriedades. |
ResolveSignatureTypeKind(MetadataReader, EntityHandle, Byte) |
Fornecidos um identificador de tipo e um tipo bruto, encontrados em um blob de assinatura, determina se o tipo de destino é um tipo de valor ou de referência. |
GetHeapOffset(MetadataReader, Handle) |
Obtém o deslocamento dos dados de heap de metadados que correspondem ao |
GetRowNumber(MetadataReader, EntityHandle) |
Obtém o número da linha de uma entrada da tabela de metadados que corresponde ao |
GetToken(MetadataReader, EntityHandle) |
Obtém o token de metadados do |
GetToken(MetadataReader, Handle) |
Obtém o token de metadados do |