次の方法で共有


System.Reflection.Emit.MethodBuilder クラス

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

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

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

グローバル メソッド

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

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

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

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

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

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

属性

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

既知の問題