MetadataReader Sınıf

Tanım

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

public ref class MetadataReader sealed
public sealed class MetadataReader
type MetadataReader = class
Public NotInheritable Class MetadataReader
Devralma
MetadataReader

Örnekler

Bu örnekte, bir derleme için oluşturma MetadataReader ve ondan tüm tür tanımlarını okuma işlemleri gösterilmektedir:

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

Açıklamalar

MetadataReader belirtilen CLI meta verilerinden tabloların ve yığınların içeriğini okur. Tür ve yöntem tanımları gibi alt düzey yapıları çalıştırır. Yansıma yapılarını kullanarak derlemelerin içeriğini incelemeye yönelik daha üst düzey bir API için bkz MetadataLoadContext. .

Belirli bir bellek konumu için örneğini MetadataReader oluşturmak için gibi MetadataReader(Byte*, Int32)oluşturucuları kullanabilirsiniz. Taşınabilir Yürütülebilir Derleme dosyasından meta verileri okumak için uzantı yöntemini oluşturun PEReader ve kullanın GetMetadataReader(PEReader) .

CLI meta verilerinin biçimi ECMA-335 belirtimi tarafından tanımlanır. Daha fazla bilgi için Ecma Uluslararası Web sitesindeki Standart ECMA-335 - Ortak Dil Altyapısı (CLI) bölümüne bakın.

Oluşturucular

MetadataReader(Byte*, Int32)

Verilen bellek konumunda depolanan meta verilerden sınıfının yeni bir örneğini MetadataReader başlatır.

MetadataReader(Byte*, Int32, MetadataReaderOptions)

Verilen bellek konumunda depolanan meta verilerden sınıfının yeni bir örneğini MetadataReader başlatır.

MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder)

Verilen bellek konumunda depolanan meta verilerden sınıfının yeni bir örneğini MetadataReader başlatır.

Özellikler

AssemblyFiles

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

AssemblyReferences

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

CustomAttributes

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

CustomDebugInformation

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

DebugMetadataHeader

#Pdb akışından veya null akış mevcut değilse kodu çözülen bilgileri alır.

DeclarativeSecurityAttributes

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

Documents

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

EventDefinitions

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

ExportedTypes

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

FieldDefinitions

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

ImportScopes

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

IsAssembly

Meta verilerin bir derlemeyi temsil edip etmediğini gösteren bir değer alır.

LocalConstants

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

LocalScopes

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

LocalVariables

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

ManifestResources

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

MemberReferences

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

MetadataKind

Meta veri türünü alır.

MetadataLength

Temel alınan verilerin uzunluğunu alır.

MetadataPointer

temel alınan verilerin işaretçisini alır.

MetadataVersion

Meta veri üst bilgisinden okunan sürüm dizesini alır.

MethodDebugInformation

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

MethodDefinitions

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

Options

MetadataReaderOptions Oluşturucuya geçirileni alır.

PropertyDefinitions

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

StringComparer

Meta verilerde depolanan dizeleri karşılaştırmak için kullanılan karşılaştırıcıyı alır.

TypeDefinitions

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

TypeReferences

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

UTF8Decoder

UTF8 ile kodlanmış bayt dizilerinden dize örnekleri üretmek için okuyucu tarafından kullanılan kod çözücüsü alır.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetAssemblyDefinition()

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetAssemblyFile(AssemblyFileHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetAssemblyName(String)

Belirli bir dosyanın öğesini AssemblyName alır.

GetAssemblyReference(AssemblyReferenceHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetBlobBytes(BlobHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetBlobContent(BlobHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetBlobReader(BlobHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetBlobReader(StringHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetConstant(ConstantHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetCustomAttribute(CustomAttributeHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetCustomAttributes(EntityHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetCustomDebugInformation(CustomDebugInformationHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetCustomDebugInformation(EntityHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetDocument(DocumentHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetEventDefinition(EventDefinitionHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetExportedType(ExportedTypeHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetFieldDefinition(FieldDefinitionHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetGenericParameter(GenericParameterHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetGenericParameterConstraint(GenericParameterConstraintHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetGuid(GuidHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetImportScope(ImportScopeHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetInterfaceImplementation(InterfaceImplementationHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetLocalConstant(LocalConstantHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetLocalScope(LocalScopeHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetLocalScopes(MethodDebugInformationHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetLocalScopes(MethodDefinitionHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetLocalVariable(LocalVariableHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetManifestResource(ManifestResourceHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetMemberReference(MemberReferenceHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetMethodDebugInformation(MethodDebugInformationHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetMethodDebugInformation(MethodDefinitionHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetMethodDefinition(MethodDefinitionHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetMethodImplementation(MethodImplementationHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetMethodSpecification(MethodSpecificationHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetModuleDefinition()

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetModuleReference(ModuleReferenceHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetNamespaceDefinition(NamespaceDefinitionHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetNamespaceDefinitionRoot()

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetParameter(ParameterHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetPropertyDefinition(PropertyDefinitionHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetStandaloneSignature(StandaloneSignatureHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetString(DocumentNameBlobHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetString(NamespaceDefinitionHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetString(StringHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
GetTypeDefinition(TypeDefinitionHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetTypeReference(TypeReferenceHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetTypeSpecification(TypeSpecificationHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

GetUserString(UserStringHandle)

ECMA 335 CLI belirtimi tarafından tanımlanan meta verileri okur.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Uzantı Metotları

GetEditAndContinueLogEntries(MetadataReader)

EnC günlüğü girdilerini numaralandırır.

GetEditAndContinueMapEntries(MetadataReader)

EnC eşlemesi girdilerini numaralandırır.

GetHeapMetadataOffset(MetadataReader, HeapIndex)

Meta verilerin başlangıcından belirtilen yığına uzaklığı döndürür.

GetHeapSize(MetadataReader, HeapIndex)

Belirtilen yığının boyutunu döndürür.

GetNextHandle(MetadataReader, BlobHandle)

Yığında Blob verileni izleyen tutamacı Blob veya sonuncusuysa bir nil tutamacını döndürür.

GetNextHandle(MetadataReader, StringHandle)

Dize yığınında verileni izleyen dizenin tutamacını veya sonuncusuysa sıfır tutamacını döndürür.

GetNextHandle(MetadataReader, UserStringHandle)

UserString yığınında verilen tanıtıcıyı izleyen UserString tutamacını veya sonuncusuysa bir nil tutamacını döndürür.

GetTableMetadataOffset(MetadataReader, TableIndex)

Meta verilerin başlangıcından belirtilen tabloya uzaklığı döndürür.

GetTableRowCount(MetadataReader, TableIndex)

Belirtilen tablodaki satır sayısını döndürür.

GetTableRowSize(MetadataReader, TableIndex)

Belirtilen tablodaki bir satırın boyutunu döndürür.

GetTypesWithEvents(MetadataReader)

Bir veya daha fazla olayı tanımlayan türleri numaralandır.

GetTypesWithProperties(MetadataReader)

Bir veya daha fazla özelliği tanımlayan türleri numaralandır.

ResolveSignatureTypeKind(MetadataReader, EntityHandle, Byte)

Bir tür tutamacı ve imza blobunda bulunan ham tür türü verildiğinde, hedef türün bir değer türü mü yoksa başvuru türü mü olduğunu belirler.

GetHeapOffset(MetadataReader, Handle)

bağlamında belirtilene handle karşılık gelen meta veri yığını verilerinin uzaklığını readeralır.

GetRowNumber(MetadataReader, EntityHandle)

bağlamında belirtilene handle karşılık gelen meta veri tablosu girişinin readersatır numarasını alır.

GetToken(MetadataReader, EntityHandle)

bağlamında belirtilen handle öğesinin meta veri belirtecini readeralır.

GetToken(MetadataReader, Handle)

bağlamında belirtilen handle öğesinin meta veri belirtecini readeralır.

Şunlara uygulanır