MetadataReader Kelas

Definisi

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

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

Contoh

Contoh ini menunjukkan cara membuat MetadataReader untuk perakitan dan membaca semua definisi jenis darinya:

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

Keterangan

MetadataReader membaca konten tabel dan timbunan dari metadata CLI yang ditentukan. Ini mengoperasikan konstruksi tingkat rendah seperti definisi jenis dan metode. Untuk API tingkat yang lebih tinggi untuk memeriksa konten rakitan menggunakan konstruksi refleksi, lihat MetadataLoadContext.

Anda dapat menggunakan konstruktor, seperti MetadataReader(Byte*, Int32), untuk membuat instans MetadataReader untuk lokasi memori tertentu. Untuk membaca metadata dari file rakitan Portable Executable, buat PEReader dan gunakan GetMetadataReader(PEReader) metode ekstensi.

Format metadata CLI ditentukan oleh spesifikasi ECMA-335. Untuk informasi selengkapnya, lihat ECMA-335 Standar - Infrastruktur Bahasa Umum (CLI) di situs Web Ecma International.

Konstruktor

MetadataReader(Byte*, Int32)

Menginisialisasi instans MetadataReader baru kelas dari metadata yang disimpan di lokasi memori yang diberikan.

MetadataReader(Byte*, Int32, MetadataReaderOptions)

Menginisialisasi instans MetadataReader baru kelas dari metadata yang disimpan di lokasi memori yang diberikan.

MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder)

Menginisialisasi instans MetadataReader baru kelas dari metadata yang disimpan di lokasi memori yang diberikan.

Properti

AssemblyFiles

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

AssemblyReferences

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

CustomAttributes

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

CustomDebugInformation

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

DebugMetadataHeader

Mendapatkan informasi yang didekodekan dari aliran #Pdb, atau null jika aliran tidak ada.

DeclarativeSecurityAttributes

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

Documents

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

EventDefinitions

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

ExportedTypes

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

FieldDefinitions

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

ImportScopes

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

IsAssembly

Mendapatkan nilai yang menunjukkan apakah metadata mewakili assembly.

LocalConstants

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

LocalScopes

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

LocalVariables

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

ManifestResources

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

MemberReferences

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

MetadataKind

Mendapatkan jenis metadata.

MetadataLength

Mendapatkan panjang data yang mendasar.

MetadataPointer

Mendapatkan penunjuk ke data yang mendasar.

MetadataVersion

Mendapatkan string versi yang dibaca dari header metadata.

MethodDebugInformation

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

MethodDefinitions

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

Options

Mendapatkan diteruskan MetadataReaderOptions ke konstruktor.

PropertyDefinitions

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

StringComparer

Mendapatkan perbandingan yang digunakan untuk membandingkan string yang disimpan dalam metadata.

TypeDefinitions

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

TypeReferences

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

UTF8Decoder

Mendapatkan dekoder yang digunakan oleh pembaca untuk menghasilkan instans string dari urutan byte yang dikodekan UTF8.

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetAssemblyDefinition()

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetAssemblyFile(AssemblyFileHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetAssemblyName(String)

AssemblyName Mendapatkan untuk file tertentu.

GetAssemblyReference(AssemblyReferenceHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetBlobBytes(BlobHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetBlobContent(BlobHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetBlobReader(BlobHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetBlobReader(StringHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetConstant(ConstantHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetCustomAttribute(CustomAttributeHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetCustomAttributes(EntityHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetCustomDebugInformation(CustomDebugInformationHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetCustomDebugInformation(EntityHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetDocument(DocumentHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetEventDefinition(EventDefinitionHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetExportedType(ExportedTypeHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetFieldDefinition(FieldDefinitionHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetGenericParameter(GenericParameterHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetGenericParameterConstraint(GenericParameterConstraintHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetGuid(GuidHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetImportScope(ImportScopeHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetInterfaceImplementation(InterfaceImplementationHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetLocalConstant(LocalConstantHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetLocalScope(LocalScopeHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetLocalScopes(MethodDebugInformationHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetLocalScopes(MethodDefinitionHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetLocalVariable(LocalVariableHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetManifestResource(ManifestResourceHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetMemberReference(MemberReferenceHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetMethodDebugInformation(MethodDebugInformationHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetMethodDebugInformation(MethodDefinitionHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetMethodDefinition(MethodDefinitionHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetMethodImplementation(MethodImplementationHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetMethodSpecification(MethodSpecificationHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetModuleDefinition()

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetModuleReference(ModuleReferenceHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetNamespaceDefinition(NamespaceDefinitionHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetNamespaceDefinitionRoot()

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetParameter(ParameterHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetPropertyDefinition(PropertyDefinitionHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetStandaloneSignature(StandaloneSignatureHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetString(DocumentNameBlobHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetString(NamespaceDefinitionHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetString(StringHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
GetTypeDefinition(TypeDefinitionHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetTypeReference(TypeReferenceHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetTypeSpecification(TypeSpecificationHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

GetUserString(UserStringHandle)

Membaca metadata seperti yang didefinisikan oleh spesifikasi CLI ECMA 335.

MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Metode Ekstensi

GetEditAndContinueLogEntries(MetadataReader)

Menghitung entri log EnC.

GetEditAndContinueMapEntries(MetadataReader)

Menghitung entri peta EnC.

GetHeapMetadataOffset(MetadataReader, HeapIndex)

Mengembalikan offset dari awal metadata ke tumpukan yang ditentukan.

GetHeapSize(MetadataReader, HeapIndex)

Mengembalikan ukuran timbunan yang ditentukan.

GetNextHandle(MetadataReader, BlobHandle)

Mengembalikan handel ke Blob yang mengikuti yang diberikan dalam Blob heap atau handel nihil jika itu adalah yang terakhir.

GetNextHandle(MetadataReader, StringHandle)

Mengembalikan handel ke string yang mengikuti yang diberikan dalam tumpuk string, atau handel nihil jika itu adalah yang terakhir.

GetNextHandle(MetadataReader, UserStringHandle)

Mengembalikan handel ke UserString yang mengikuti yang diberikan dalam heap UserString atau handel nihil jika itu adalah yang terakhir.

GetTableMetadataOffset(MetadataReader, TableIndex)

Mengembalikan offset dari awal metadata ke tabel yang ditentukan.

GetTableRowCount(MetadataReader, TableIndex)

Mengembalikan jumlah baris dalam tabel yang ditentukan.

GetTableRowSize(MetadataReader, TableIndex)

Mengembalikan ukuran baris dalam tabel yang ditentukan.

GetTypesWithEvents(MetadataReader)

Menghitung jenis yang menentukan satu atau beberapa peristiwa.

GetTypesWithProperties(MetadataReader)

Hitung jenis yang menentukan satu atau beberapa properti.

ResolveSignatureTypeKind(MetadataReader, EntityHandle, Byte)

Mengingat handel jenis dan jenis jenis mentah yang ditemukan dalam blob tanda tangan menentukan apakah jenis target adalah jenis nilai atau jenis referensi.

GetHeapOffset(MetadataReader, Handle)

Mendapatkan offset data tumpukan metadata yang sesuai dengan yang ditentukan handle dalam konteks reader.

GetRowNumber(MetadataReader, EntityHandle)

Mendapatkan nomor baris entri tabel metadata yang sesuai dengan yang ditentukan handle dalam konteks reader.

GetToken(MetadataReader, EntityHandle)

Mendapatkan token metadata dari yang ditentukan handle dalam konteks reader.

GetToken(MetadataReader, Handle)

Mendapatkan token metadata dari yang ditentukan handle dalam konteks reader.

Berlaku untuk