MetadataReader Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 |
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 |
GetRowNumber(MetadataReader, EntityHandle) |
Mendapatkan nomor baris entri tabel metadata yang sesuai dengan yang ditentukan |
GetToken(MetadataReader, EntityHandle) |
Mendapatkan token metadata dari yang ditentukan |
GetToken(MetadataReader, Handle) |
Mendapatkan token metadata dari yang ditentukan |