MetadataReader クラス

定義

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

public ref class MetadataReader sealed
public sealed class MetadataReader
type MetadataReader = class
Public NotInheritable Class MetadataReader
継承
MetadataReader

この例では、アセンブリを作成 MetadataReader し、そこからすべての型定義を読み取る方法を示します。

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

注釈

MetadataReader は、指定された CLI メタデータからテーブルとヒープの内容を読み取ります。 型定義やメソッド定義などの下位レベルのコンストラクトが動作します。 リフレクション コンストラクトを使用してアセンブリの内容を検査する上位レベルの API については、「」を参照してください MetadataLoadContext

などの MetadataReader(Byte*, Int32)コンストラクターを使用して、特定のメモリ位置の の MetadataReader インスタンスを作成できます。 ポータブル実行可能ファイルからメタデータを読み取る場合は、拡張メソッドを作成 PEReader して使用します GetMetadataReader(PEReader)

CLI メタデータの形式は、ECMA-335 仕様によって定義されます。 詳細については、Ecma International Web サイトの 「Standard ECMA-335 - 共通言語インフラストラクチャ (CLI)」 を参照してください。

コンストラクター

MetadataReader(Byte*, Int32)

指定のメモリ場所に保存されているメタデータから MetadataReader クラスの新しいインスタンスを初期化します。

MetadataReader(Byte*, Int32, MetadataReaderOptions)

指定のメモリ場所に保存されているメタデータから MetadataReader クラスの新しいインスタンスを初期化します。

MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder)

指定のメモリ場所に保存されているメタデータから MetadataReader クラスの新しいインスタンスを初期化します。

プロパティ

AssemblyFiles

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

AssemblyReferences

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

CustomAttributes

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

CustomDebugInformation

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

DebugMetadataHeader

#Pdb ストリームからデコードされた情報を取得します。あるいは、ストリームがない場合は null

DeclarativeSecurityAttributes

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

Documents

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

EventDefinitions

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

ExportedTypes

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

FieldDefinitions

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

ImportScopes

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

IsAssembly

メタデータがアセンブリを表すかどうかを示す値を取得します。

LocalConstants

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

LocalScopes

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

LocalVariables

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

ManifestResources

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

MemberReferences

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

MetadataKind

メタデータの種類を取得します。

MetadataLength

基になるデータの長さを取得します。

MetadataPointer

基になるデータへのポインターを取得します。

MetadataVersion

メタデータ ヘッダーから読み込まれたバージョン文字列を取得します。

MethodDebugInformation

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

MethodDefinitions

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

Options

コンストラクターに渡された MetadataReaderOptions を取得します。

PropertyDefinitions

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

StringComparer

メタデータに格納されている文字列を比較するための比較子を取得します。

TypeDefinitions

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

TypeReferences

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

UTF8Decoder

UTF8 でエンコードされたバイト シーケンスから文字列インスタンスを生成するためにリーダーによって使用されるデコーダーを取得します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetAssemblyDefinition()

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetAssemblyFile(AssemblyFileHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetAssemblyName(String)

指定したファイルの AssemblyName を取得します。

GetAssemblyReference(AssemblyReferenceHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetBlobBytes(BlobHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetBlobContent(BlobHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetBlobReader(BlobHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetBlobReader(StringHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetConstant(ConstantHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetCustomAttribute(CustomAttributeHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetCustomAttributes(EntityHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetCustomDebugInformation(CustomDebugInformationHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetCustomDebugInformation(EntityHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetDocument(DocumentHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetEventDefinition(EventDefinitionHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetExportedType(ExportedTypeHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetFieldDefinition(FieldDefinitionHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetGenericParameter(GenericParameterHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetGenericParameterConstraint(GenericParameterConstraintHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetGuid(GuidHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetImportScope(ImportScopeHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetInterfaceImplementation(InterfaceImplementationHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetLocalConstant(LocalConstantHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetLocalScope(LocalScopeHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetLocalScopes(MethodDebugInformationHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetLocalScopes(MethodDefinitionHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetLocalVariable(LocalVariableHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetManifestResource(ManifestResourceHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetMemberReference(MemberReferenceHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetMethodDebugInformation(MethodDebugInformationHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetMethodDebugInformation(MethodDefinitionHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetMethodDefinition(MethodDefinitionHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetMethodImplementation(MethodImplementationHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetMethodSpecification(MethodSpecificationHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetModuleDefinition()

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetModuleReference(ModuleReferenceHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetNamespaceDefinition(NamespaceDefinitionHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetNamespaceDefinitionRoot()

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetParameter(ParameterHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetPropertyDefinition(PropertyDefinitionHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetStandaloneSignature(StandaloneSignatureHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetString(DocumentNameBlobHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetString(NamespaceDefinitionHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetString(StringHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
GetTypeDefinition(TypeDefinitionHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetTypeReference(TypeReferenceHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetTypeSpecification(TypeSpecificationHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

GetUserString(UserStringHandle)

ECMA 335 CLI 仕様で定義されているとおりにメタデータを読み取ります。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

拡張メソッド

GetEditAndContinueLogEntries(MetadataReader)

EnC ログのエントリを列挙します。

GetEditAndContinueMapEntries(MetadataReader)

EnC マップのエントリを列挙します。

GetHeapMetadataOffset(MetadataReader, HeapIndex)

メタデータの先頭から指定したヒープまでのオフセットを返します。

GetHeapSize(MetadataReader, HeapIndex)

指定したヒープのサイズを返します。

GetNextHandle(MetadataReader, BlobHandle)

Blob ヒープ内の指定した Blob ハンドルの次を返します。最後の場合は nil ハンドルを返します。

GetNextHandle(MetadataReader, StringHandle)

文字列ヒープ内の指定した文字列ハンドルの次を返します。最後の場合は nil ハンドルを返します。

GetNextHandle(MetadataReader, UserStringHandle)

UserString ヒープ内の指定した UserString ハンドルの次を返します。最後の場合は nil ハンドルを返します。

GetTableMetadataOffset(MetadataReader, TableIndex)

メタデータの先頭から指定したテーブルまでのオフセットを返します。

GetTableRowCount(MetadataReader, TableIndex)

指定したテーブル内の行数を返します。

GetTableRowSize(MetadataReader, TableIndex)

指定したテーブル内の行のサイズを返します。

GetTypesWithEvents(MetadataReader)

1 つ以上のイベントを定義する型を列挙します。

GetTypesWithProperties(MetadataReader)

1 つ以上のプロパティを定義する型を列挙します。

ResolveSignatureTypeKind(MetadataReader, EntityHandle, Byte)

署名 BLOB に、型ハンドルと未加工の型の種類が見つかった場合、それによってターゲットの型が値型か参照型かが決まります。

GetHeapOffset(MetadataReader, Handle)

reader のコンテキストで指定した handle に対応する、メタデータ ヒープ データのオフセットを取得します。

GetRowNumber(MetadataReader, EntityHandle)

reader のコンテキストで指定した handle に対応するメタデータ テーブル エントリの行番号を取得します。

GetToken(MetadataReader, EntityHandle)

reader のコンテキストで指定した handle のメタデータ トークンを取得します。

GetToken(MetadataReader, Handle)

reader のコンテキストで指定した handle のメタデータ トークンを取得します。

適用対象