System.Reflection.Emit.MethodBuilder クラス

この記事では、この API のリファレンス ドキュメントに補足的な解説を提供します。

MethodBuilder クラスは、名前、属性、シグネチャ、メソッド本体など、共通の中間言語 (CIL) のメソッドを完全に記述するために使用されます。 実行時にクラスを作成するために、 TypeBuilder クラスと組み合わせて使用されます。

リフレクション出力を使用すると、グローバル メソッドを定義したり、メソッドを型メンバーとして定義することができます。 メソッドを定義する API は、 MethodBuilder オブジェクトを返します。

グローバル メソッド

グローバル メソッドは、ModuleBuilder.DefineGlobalMethod オブジェクトを返すMethodBuilder メソッドを使用して定義されます。

グローバル メソッドは静的である必要があります。 動的モジュールにグローバル メソッドが含まれている場合、共通言語ランタイムは、すべてのグローバル関数が定義されるまで動的モジュールの修正を延期するため、動的モジュールまたは含まれている動的アセンブリを永続化する前に、 ModuleBuilder.CreateGlobalFunctions メソッドを呼び出す必要があります。

グローバル ネイティブ メソッドは、 ModuleBuilder.DefinePInvokeMethod メソッドを使用して定義されます。 プラットフォーム呼び出し (PInvoke) メソッドを抽象または仮想として宣言することはできません。 ランタイムは、プラットフォーム呼び出しメソッドの MethodAttributes.PinvokeImpl 属性を設定します。

型のメンバーとしてのメソッド

メソッドは、TypeBuilder.DefineMethod オブジェクトを返すMethodBuilder メソッドを使用して、型メンバーとして定義されます。

DefineParameter メソッドは、パラメーターの名前とパラメーター属性、または戻り値の属性を設定するために使用されます。 このメソッドによって返される ParameterBuilder オブジェクトは、パラメーターまたは戻り値を表します。 ParameterBuilder オブジェクトは、マーシャリングの設定、定数値の設定、およびカスタム属性の適用に使用できます。

属性

MethodAttributes列挙体のメンバーは、動的メソッドの正確な文字を定義します。

既知の問題