DynamicILInfo クラス

定義

トークンを作成するためのメソッド、コードの挿入、例外処理、ローカル変数シグネチャ BLOB など、動的メソッドのMicrosoft中間言語 (MSIL) とメタデータを生成する別の方法をサポートします。

public ref class DynamicILInfo sealed
public ref class DynamicILInfo
public sealed class DynamicILInfo
[System.Runtime.InteropServices.ComVisible(true)]
public class DynamicILInfo
public class DynamicILInfo
type DynamicILInfo = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type DynamicILInfo = class
Public NotInheritable Class DynamicILInfo
Public Class DynamicILInfo
継承
DynamicILInfo
属性

注釈

DynamicILInfo クラスを使用すると、開発者は、ILGeneratorを使用する代わりに、独自の MSIL ジェネレーターを記述できます。

他の型のインスタンスやメソッドの呼び出しなどを作成するには、生成する MSIL にそれらのエンティティのトークンを含める必要があります。 DynamicILInfo クラスは、現在のGetTokenForのスコープで有効なトークンを返す、DynamicILInfo メソッドのいくつかのオーバーロードを提供します。 たとえば、 Console.WriteLine メソッドのオーバーロードを呼び出す必要がある場合は、そのオーバーロードの RuntimeMethodHandle を取得し、それを GetTokenFor メソッドに渡して、MSIL に埋め込むトークンを取得できます。

ローカル変数シグネチャ、例外、およびコード本体のByte配列を作成したら、SetCodeSetExceptions、およびSetLocalSignatureメソッドを使用して、DynamicMethod オブジェクトに関連付けられているDynamicILInfoに挿入できます。

独自のメタデータと MSIL を生成するには、共通言語インフラストラクチャ (CLI) のドキュメント、特に"Partition II: Metadata Definition and Semantics"、および "Partition III: CIL Instruction Set" に精通している必要があります。 詳細については、 ECMA 335 共通言語インフラストラクチャ (CLI) を参照してください。

Note

DynamicILInfoを使用して、デリゲート コンストラクターを直接呼び出して別の動的メソッドへのデリゲートを作成するコードを生成しないでください。 代わりに、 CreateDelegate メソッドを使用してデリゲートを作成します。 デリゲート コンストラクターを使用して作成されたデリゲートには、ターゲットの動的メソッドへの参照がありません。 デリゲートがまだ使用されている間、動的メソッドはガベージ コレクションによって再利用される可能性があります。

プロパティ

名前 説明
DynamicMethod

現在のインスタンスによって本体が生成される動的メソッドを取得します。

メソッド

名前 説明
Equals(Object)

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

(継承元 Object)
GetHashCode()

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

(継承元 Object)
GetTokenFor(Byte[])

関連付けられた動的メソッドのシグネチャを表す、現在の DynamicILInfoのスコープで有効なトークンを取得します。

GetTokenFor(DynamicMethod)

関連付けられたメソッドから呼び出される動的メソッドを表す、現在の DynamicILInfoのスコープで有効なトークンを取得します。

GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle)

関連付けられた動的メソッドからアクセスするフィールドを表す、現在の DynamicILInfoのスコープで有効なトークンを取得します。フィールドは、指定されたジェネリック型にあります。

GetTokenFor(RuntimeFieldHandle)

関連付けられた動的メソッドからアクセスするフィールドを表す、現在の DynamicILInfoのスコープで有効なトークンを取得します。

GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle)

ジェネリック型のメソッドを表す、現在の DynamicILInfoのスコープで有効なトークンを取得します。

GetTokenFor(RuntimeMethodHandle)

関連付けられている動的メソッドからアクセスするメソッドを表す、現在の DynamicILInfoのスコープで有効なトークンを取得します。

GetTokenFor(RuntimeTypeHandle)

関連付けられた動的メソッドで使用される型を表す、現在の DynamicILInfoのスコープで有効なトークンを取得します。

GetTokenFor(String)

関連付けられた動的メソッドで使用される文字列リテラルを表す、現在の DynamicILInfoのスコープで有効なトークンを取得します。

GetType()

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

(継承元 Object)
MemberwiseClone()

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

(継承元 Object)
SetCode(Byte[], Int32)

関連付けられている動的メソッドのコード本体を設定します。

SetCode(Byte*, Int32, Int32)

関連付けられている動的メソッドのコード本体を設定します。

SetExceptions(Byte[])

関連付けられている動的メソッドの例外メタデータを設定します。

SetExceptions(Byte*, Int32)

関連付けられている動的メソッドの例外メタデータを設定します。

SetLocalSignature(Byte[])

関連付けられた動的メソッドのローカル変数のレイアウトを記述するローカル変数シグネチャを設定します。

SetLocalSignature(Byte*, Int32)

関連付けられた動的メソッドのローカル変数のレイアウトを記述するローカル変数シグネチャを設定します。

ToString()

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

(継承元 Object)

適用対象