DynamicILInfo クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
トークンを作成するメソッドや、コード、例外処理、およびローカル変数のシグネチャの BLOB を挿入するメソッドなど、動的メソッドの MSIL (Microsoft Intermediate Language) とメタデータを生成する代替の方法をサポートします。
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したら、および SetLocalSignature メソッドをSetExceptionsSetCode使用して、オブジェクトに関連付DynamicILInfoけられている にDynamicMethod挿入できます。
独自のメタデータと MSIL を生成するには、共通言語インフラストラクチャ (CLI) のドキュメント、特に "Partition II: Metadata Definition and Semantics" と "Partition III: CIL Instruction Set" に精通している必要があります。 詳細については、「 ECMA 335 共通言語インフラストラクチャ (CLI)」を参照してください。
注意
を使用 DynamicILInfo して、デリゲート コンストラクターを直接呼び出して、別の動的メソッドへのデリゲートを作成するコードを生成しないでください。 代わりに、 メソッドを CreateDelegate 使用してデリゲートを作成します。 デリゲート コンストラクターを使用して作成されたデリゲートには、ターゲットの動的メソッドへの参照がありません。 デリゲートがまだ使用されている間は、動的メソッドがガベージ コレクションによって再利用される場合があります。
プロパティ
DynamicMethod |
本体が現在のインスタンスによって生成される動的メソッドを取得します。 |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetTokenFor(Byte[]) |
関連付けられた動的メソッドのシグネチャを表す、現在の DynamicILInfo のスコープで有効なトークンを取得します。 |
GetTokenFor(DynamicMethod) |
関連付けられたメソッドから呼び出される動的メソッドを表す、現在の DynamicILInfo のスコープで有効なトークンを取得します。 |
GetTokenFor(RuntimeFieldHandle) |
関連付けられた動的メソッドからアクセスされるフィールドを表す、現在の DynamicILInfo のスコープで有効なトークンを取得します。 |
GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle) |
関連付けられた動的メソッドからアクセスされるフィールドのうち、指定されたジェネリック型に存在するフィールドを表す、現在の DynamicILInfo のスコープで有効なトークンを取得します。 |
GetTokenFor(RuntimeMethodHandle) |
関連付けられた動的メソッドからアクセスされるメソッドを表す、現在の DynamicILInfo のスコープで有効なトークンを取得します。 |
GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle) |
ジェネリック型のメソッドを表す、現在の DynamicILInfo のスコープで有効なトークンを取得します。 |
GetTokenFor(RuntimeTypeHandle) |
関連付けられた動的メソッドで使用される型を表す、現在の DynamicILInfo のスコープで有効なトークンを取得します。 |
GetTokenFor(String) |
関連付けられた動的メソッドで使用されるリテラル文字列を表す、現在の DynamicILInfo のスコープで有効なトークンを取得します。 |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
SetCode(Byte*, Int32, Int32) |
関連付けられた動的メソッドのコード本体を設定します。 |
SetCode(Byte[], Int32) |
関連付けられた動的メソッドのコード本体を設定します。 |
SetExceptions(Byte*, Int32) |
関連付けられた動的メソッドの例外のメタデータを設定します。 |
SetExceptions(Byte[]) |
関連付けられた動的メソッドの例外のメタデータを設定します。 |
SetLocalSignature(Byte*, Int32) |
関連付けられた動的メソッドのローカル変数のレイアウトを記述する、ローカル変数のシグネチャを設定します。 |
SetLocalSignature(Byte[]) |
関連付けられた動的メソッドのローカル変数のレイアウトを記述する、ローカル変数のシグネチャを設定します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
.NET