MetadataReader Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 bu derlemeden 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
Dikkat
Bu tür güvenilmeyen girişleri işlemek için tasarlanmamıştır. Hatalı biçimlendirilmiş veya kötü amaçlı meta veriler, sınır dışı bellek erişimi, kilitlenmeler veya kilitlenmeler gibi beklenmeyen davranışlara neden olabilir. Yalnızca güvenilen derlemelerin meta verileri gibi güvenilen meta verilerle kullanın MetadataReader .
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 incelemek için 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
| Name | Description |
|---|---|
| MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder) |
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) |
Verilen bellek konumunda depolanan meta verilerden sınıfının yeni bir örneğini MetadataReader başlatır. |
Özellikler
| Name | Description |
|---|---|
| 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 akış mevcut değilse kodu |
| 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 |
İşaretçiyi temel alınan verilere 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
| Name | Description |
|---|---|
| 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) |
AssemblyName Belirli bir dosyanın öğesini 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() |
Geçerli örneğin Type 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 Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
Uzantı Metotları
| Name | Description |
|---|---|
| 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. |
| GetHeapOffset(MetadataReader, Handle) |
bağlamında belirtilene |
| GetHeapSize(MetadataReader, HeapIndex) |
Belirtilen yığının boyutunu döndürür. |
| GetNextHandle(MetadataReader, BlobHandle) |
Öbekteki Blob verilen tutamacı izleyen tutamacı Blob veya son tutamacı ise sıfır tutamacını döndürür. |
| GetNextHandle(MetadataReader, StringHandle) |
Dize yığınında verileni izleyen dizenin tutamacını veya son tutamacı ise 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 son tanıtıcı ise bir sıfır tutamacını döndürür. |
| GetRowNumber(MetadataReader, EntityHandle) |
bağlamında |
| 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. |
| GetToken(MetadataReader, EntityHandle) |
bağlamında belirtilen |
| GetToken(MetadataReader, Handle) |
bağlamında belirtilen |
| 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. |