_MethodBuilderとは? わかりやすく解説

MethodBuilder クラス

動的クラスメソッド (またはコンストラクタ) を定義および表現します

名前空間: System.Reflection.Emit
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ClassInterfaceAttribute(ClassInterfaceType.None)> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class
 MethodBuilder
    Inherits MethodInfo
    Implements _MethodBuilder
Dim instance As MethodBuilder
[ClassInterfaceAttribute(ClassInterfaceType.None)] 
[ComVisibleAttribute(true)] 
public sealed class MethodBuilder : MethodInfo,
 _MethodBuilder
[ClassInterfaceAttribute(ClassInterfaceType::None)] 
[ComVisibleAttribute(true)] 
public ref class MethodBuilder sealed : public
 MethodInfo, _MethodBuilder
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.None) */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class MethodBuilder extends MethodInfo
 implements _MethodBuilder
ClassInterfaceAttribute(ClassInterfaceType.None) 
ComVisibleAttribute(true) 
public final class MethodBuilder extends
 MethodInfo implements _MethodBuilder
解説解説
使用例使用例

MethodBuilder クラス使用して動的な型の中にメソッド作成する方法次の例に示します

Imports System
Imports System.Threading
Imports System.Reflection
Imports System.Reflection.Emit

 _


Class DemoMethodBuilder
   
   Public Shared Sub AddMethodDynamically(ByRef
 myTypeBld As TypeBuilder, _
                        mthdName As String,
 _
                            mthdParams() As Type, _
                            returnType As Type, _
                            mthdAction As String)
      
      Dim myMthdBld As MethodBuilder = myTypeBld.DefineMethod(mthdName,
 _
                       MethodAttributes.Public Or MethodAttributes.Static,
 _
                       returnType, _
                       mthdParams)
      
      Dim ILout As ILGenerator = myMthdBld.GetILGenerator()
      
      Dim numParams As Integer
 = mthdParams.Length
      
      Dim x As Byte
      For x = 0 To numParams - 1
         ILout.Emit(OpCodes.Ldarg_S, x)
      Next x
      
      If numParams > 1 Then
         Dim y As Integer
         For y = 0 To (numParams - 1) - 1
            Select Case mthdAction
               Case "A"
                  ILout.Emit(OpCodes.Add)
               Case "M"
                  ILout.Emit(OpCodes.Mul)
               Case Else
                  ILout.Emit(OpCodes.Add)
            End Select
         Next y
      End If
      ILout.Emit(OpCodes.Ret)
   End Sub 'AddMethodDynamically
    
   
   Public Shared Sub Main()
      
      Dim myDomain As AppDomain = Thread.GetDomain()
      Dim asmName As New
 AssemblyName()
      asmName.Name = "DynamicAssembly1"
      
      Dim myAsmBuilder As AssemblyBuilder =
 myDomain.DefineDynamicAssembly(asmName, _
                        AssemblyBuilderAccess.RunAndSave)
      
      Dim myModule As ModuleBuilder = myAsmBuilder.DefineDynamicModule("DynamicModule1",
 _
                                       "MyDynamicAsm.dll")
      
      Dim myTypeBld As TypeBuilder = myModule.DefineType("MyDynamicType",
 TypeAttributes.Public)
      
      ' Get info from the user to build the method dynamically.
      Console.WriteLine("Let's build a simple method dynamically!")
      Console.WriteLine("Please enter a few numbers, separated
 by spaces.")
      Dim inputNums As String
 = Console.ReadLine()
      Console.Write("Do you want to [A]dd or [M]ultiply these
 numbers? ")
      Dim myMthdAction As String
 = Console.ReadLine()
      Console.Write("Lastly, what do you want to name your new
 dynamic method? ")
      Dim myMthdName As String
 = Console.ReadLine()
      
      ' Process inputNums into an array and create a corresponding Type
 array 
      Dim index As Integer
 = 0
      Dim inputNumsList As String()
 = inputNums.Split()
      
      Dim myMthdParams(inputNumsList.Length - 1) As
 Type
      Dim inputValsList(inputNumsList.Length - 1) As
 Object
      
      
      Dim inputNum As String
      For Each inputNum In
  inputNumsList
         inputValsList(index) = CType(Convert.ToInt32(inputNum), Object)
         myMthdParams(index) = GetType(Integer)
         index += 1
      Next inputNum
      
      ' Now, call the method building method with the parameters, passing
 the 
      ' TypeBuilder by reference.
      AddMethodDynamically(myTypeBld, myMthdName, myMthdParams, GetType(Integer),
 myMthdAction)
      
      Dim myType As Type = myTypeBld.CreateType()
     
      Dim description as String
 
      If myMthdAction = "A" Then
     description = "adding"
      Else
     description = "multiplying"
      End If

      Console.WriteLine("---")
      Console.WriteLine("The result of {0} the inputted values
 is: {1}", _
             description, _
                 myType.InvokeMember(myMthdName, _
                         BindingFlags.InvokeMethod Or _
                                 BindingFlags.Public Or _
                         BindingFlags.Static, _
                         Nothing, _
                         Nothing, _
                         inputValsList)) 
      Console.WriteLine("---")

      ' If you are interested in seeing the MSIL generated dynamically
 for the method
      ' your program generated, change to the directory where you ran
 the compiled
      ' code sample and type "ildasm MyDynamicAsm.dll" at
 the prompt. When the list
      ' of manifest contents appears, click on "MyDynamicType"
 and then on the name of
      ' of the method you provided during execution.
 
      myAsmBuilder.Save("MyDynamicAsm.dll") 

      Dim myMthdInfo As MethodInfo = myType.GetMethod(myMthdName)
      Console.WriteLine("Your Dynamic Method: {0};",
 myMthdInfo.ToString())
   End Sub 'Main 
End Class 'DemoMethodBuilder

using System;
using System.Threading;
using System.Reflection;
using System.Reflection.Emit;


class DemoMethodBuilder {

    public static void AddMethodDynamically
 (ref TypeBuilder myTypeBld,
                         string mthdName,
                         Type[] mthdParams, 
                         Type returnType,
                         string mthdAction) 
        {
    
       MethodBuilder myMthdBld = myTypeBld.DefineMethod(
                         mthdName,
                         MethodAttributes.Public |
                         MethodAttributes.Static,
                         returnType,
                         mthdParams);    

       ILGenerator ILout = myMthdBld.GetILGenerator();
        
       int numParams = mthdParams.Length;

       for (byte x=0; x<numParams; x++) {
         ILout.Emit(OpCodes.Ldarg_S, x);
        }

           if (numParams > 1) {
               for (int y=0; y<(numParams-1);
 y++) {
          switch (mthdAction) {
            case "A": ILout.Emit(OpCodes.Add);
                  break;
            case "M": ILout.Emit(OpCodes.Mul);
                  break;
            default: ILout.Emit(OpCodes.Add);
                 break;
          }
        }
       }
       ILout.Emit(OpCodes.Ret);

         

    }

    public static void Main()
        {

       AppDomain myDomain = Thread.GetDomain();
       AssemblyName asmName = new AssemblyName();
       asmName.Name = "DynamicAssembly1";
    
       AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(
                      asmName, 
                      AssemblyBuilderAccess.RunAndSave);

          ModuleBuilder myModule = myAsmBuilder.DefineDynamicModule("DynamicModule1"
,
                                        "MyDynamicAsm.dll");

       TypeBuilder myTypeBld = myModule.DefineType("MyDynamicType",
                                 TypeAttributes.Public);       

       // Get info from the user to build the method dynamically.

       Console.WriteLine("Let's build a simple method dynamically!");
       Console.WriteLine("Please enter a few numbers, separated by spaces.");
       string inputNums = Console.ReadLine();
       Console.Write("Do you want to [A]dd or [M]ultiply these numbers? ");
       string myMthdAction = Console.ReadLine();
       Console.Write("Lastly, what do you want to name your new
 dynamic method? ");
       string myMthdName = Console.ReadLine();
    
       // Process inputNums into an array and create a corresponding
 Type array 

       int index = 0;
       string[] inputNumsList = inputNums.Split();

           Type[] myMthdParams = new Type[inputNumsList.Length];
       object[] inputValsList = new object[inputNumsList.Length];
       
       
       foreach (string inputNum in
 inputNumsList) {
         inputValsList[index] = (object)Convert.ToInt32(inputNum);
        myMthdParams[index] = typeof(int);
        index++;
           } 

       // Now, call the method building method with the parameters,
 passing the 
       // TypeBuilder by reference.

       AddMethodDynamically(ref myTypeBld,
                myMthdName,
                myMthdParams,
                typeof(int),    
                myMthdAction);

       Type myType = myTypeBld.CreateType();

       Console.WriteLine("---");
       Console.WriteLine("The result of {0} the inputted values is: {1}"
,
                 ((myMthdAction == "A") ? "adding" : "multiplying")
,
                 myType.InvokeMember(myMthdName,
                 BindingFlags.InvokeMethod | BindingFlags.Public |
                 BindingFlags.Static,
                 null,
                 null,
                 inputValsList));
       Console.WriteLine("---");

       // Let's take a look at the method we created.

       // If you are interested in seeing the MSIL generated dynamically
 for the method
           // your program generated, change to the directory where
 you ran the compiled
           // code sample and type "ildasm MyDynamicAsm.dll"
 at the prompt. When the list
           // of manifest contents appears, click on "MyDynamicType"
 and then on the name of
           // of the method you provided during execution.

       myAsmBuilder.Save("MyDynamicAsm.dll");

       MethodInfo myMthdInfo = myType.GetMethod(myMthdName);
           Console.WriteLine("Your Dynamic Method: {0};", myMthdInfo.ToString());
 
    
    }

}

using namespace System;
using namespace System::Threading;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
void AddMethodDynamically( TypeBuilder^ myTypeBld, String^ mthdName,
 array<Type^>^mthdParams, Type^ returnType, String^ mthdAction )
{
   MethodBuilder^ myMthdBld = myTypeBld->DefineMethod( mthdName, static_cast<MethodAttributes>(MethodAttributes::Public
 | MethodAttributes::Static), returnType, mthdParams );
   ILGenerator^ ILOut = myMthdBld->GetILGenerator();
   int numParams = mthdParams->Length;
   for ( Byte x = 0; x < numParams; x++ )
   {
      ILOut->Emit( OpCodes::Ldarg_S, x );

   }
   if ( numParams > 1 )
   {
      for ( int y = 0; y < (numParams -
 1); y++ )
      {
         if ( mthdAction->Equals( "A" ) )
                  ILOut->Emit( OpCodes::Add );
         else
         if ( mthdAction->Equals( "M" ) )
                  ILOut->Emit( OpCodes::Mul );
         else
                  ILOut->Emit( OpCodes::Mul );

      }
   }

   ILOut->Emit( OpCodes::Ret );
}

int main()
{
   AppDomain^ myDomain = Thread::GetDomain();
   AssemblyName^ asmName = gcnew AssemblyName;
   asmName->Name = "DynamicAssembly1";
   AssemblyBuilder^ myAsmBuilder = myDomain->DefineDynamicAssembly( asmName, AssemblyBuilderAccess::RunAndSave
 );
   ModuleBuilder^ myModule = myAsmBuilder->DefineDynamicModule( "DynamicModule1",
 "MyDynamicAsm.dll" );
   TypeBuilder^ myTypeBld = myModule->DefineType( "MyDynamicType", TypeAttributes::Public
 );
   
   // Get info from the user to build the method dynamically.
   Console::WriteLine( "Let's build a simple method dynamically!" );
   Console::WriteLine( "Please enter a few numbers, separated by spaces."
 );
   String^ inputNums = Console::ReadLine();
   Console::Write( "Do you want to [A]dd or [M]ultiply these numbers? "
 );
   String^ myMthdAction = Console::ReadLine();
   Console::Write( "Lastly, what do you want to name your new
 dynamic method? " );
   String^ myMthdName = Console::ReadLine();
   
   // Process inputNums into an array and create a corresponding Type
 array
   int index = 0;
   array<String^>^inputNumsList = inputNums->Split( 0 );
   array<Type^>^myMthdParams = gcnew array<Type^>(inputNumsList->Length);
   array<Object^>^inputValsList = gcnew array<Object^>(inputNumsList->Length);
   System::Collections::IEnumerator^ myEnum = inputNumsList->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      String^ inputNum = safe_cast<String^>(myEnum->Current);
      inputValsList[ index ] = Convert::ToInt32( inputNum );
      myMthdParams[ index ] = int::typeid;
      index++;
   }

   
   // Now, call the method building method with the parameters, passing
 the
   // TypeBuilder by reference.
   AddMethodDynamically( myTypeBld, myMthdName, myMthdParams, int::typeid,
 myMthdAction );
   Type^ myType = myTypeBld->CreateType();
   Console::WriteLine( "---" );
   Console::WriteLine( "The result of {0} the inputted values is: {1}",
 ((myMthdAction->Equals( "A" )) ? (String^)"adding" : "multiplying"),
 myType->InvokeMember( myMthdName, static_cast<BindingFlags>(BindingFlags::InvokeMethod | BindingFlags::Public | BindingFlags::Static), nullptr, nullptr,
 inputValsList ) );
   Console::WriteLine( "---" );
   
   // Let's take a look at the method we created.
   // If you are interested in seeing the MSIL generated dynamically
 for the method
   // your program generated, change to the directory where you ran
 the compiled
   // code sample and type "ildasm MyDynamicAsm.dll" at the
 prompt. When the list
   // of manifest contents appears, click on "MyDynamicType"
 and then on the name of
   // of the method you provided during execution.
   myAsmBuilder->Save( "MyDynamicAsm.dll" );
   MethodInfo^ myMthdInfo = myType->GetMethod( myMthdName );
   Console::WriteLine( "Your Dynamic Method: {0};", myMthdInfo );
}

import System.*;
import System.Threading.*;
import System.Reflection.*;
import System.Reflection.Emit.*;

class DemoMethodBuilder
{
    public static void AddMethodDynamically(TypeBuilder
 myTypeBld,
        String mthdName, Type mthdParams[], Type returnType, String mthdAction)
    {
        MethodBuilder myMthdBld = myTypeBld.DefineMethod(mthdName,
            MethodAttributes.Public | MethodAttributes.Static,
            returnType, mthdParams);
        ILGenerator iLout = myMthdBld.GetILGenerator();
        int numParams = mthdParams.length;
        for (ubyte x = 0; x < numParams; x++) {
            iLout.Emit(OpCodes.Ldarg_S, x);
        }
        if (numParams > 1) {
            for (int y = 0; y < numParams
 - 1; y++) {
                if (mthdAction.Equals("A") == true)
 {
                    iLout.Emit(OpCodes.Add);
                }
                else if (mthdAction.Equals("M")
 == true) {
                    iLout.Emit(OpCodes.Mul);
                }
                else {
                    iLout.Emit(OpCodes.Add);
                }
            }
        }
        iLout.Emit(OpCodes.Ret);
    } //AddMethodDynamically
 
    public static void main(String[]
 args)
    {
        AppDomain myDomain = System.Threading.Thread.GetDomain();
        AssemblyName asmName = new AssemblyName();
        asmName.set_Name("DynamicAssembly1");
        AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(asmName,
            AssemblyBuilderAccess.RunAndSave);
        ModuleBuilder myModule = myAsmBuilder.DefineDynamicModule
            ("DynamicModule1", "MyDynamicAsm.dll");
        TypeBuilder myTypeBld = myModule.DefineType("MyDynamicType",
            TypeAttributes.Public);

        // Get info from the user to build the method dynamically.
        Console.WriteLine("Let's build a simple method dynamically!");
        Console.WriteLine("Please enter a few numbers, separated by spaces.");
        String inputNums = Console.ReadLine();
        Console.Write("Do you want to [A]dd or [M]ultiply these numbers? ");
        String myMthdAction = Console.ReadLine();
        Console.Write("Lastly, what do you want to name your new
 "
            + "dynamic method? ");
        String myMthdName = Console.ReadLine();

        // Process inputNums into an array and create a corresponding
        // Type array 
        int index = 0;
        String inputNumsList[] = inputNums.Split(null);
        Type myMthdParams[] = new Type[inputNumsList.length];
        Object inputValsList[] = new Object[inputNumsList.length];
        for (int iCtr = 0; iCtr < inputNumsList.length;
 iCtr++) {
            String inputNum = inputNumsList[iCtr];
            inputValsList[index] = (Object)(Int32)Integer.parseInt(inputNum);
            myMthdParams.set_Item(index, int.class.ToType());
            index++;
        }

        // Now, call the method building method with the parameters
,
        // passing the TypeBuilder by reference.
        AddMethodDynamically(myTypeBld, myMthdName, myMthdParams,
            int.class.ToType(), myMthdAction);
        Type myType = myTypeBld.CreateType();
        Console.WriteLine("---");
        Console.WriteLine("The result of {0} the inputted values is: {1}"
,
            (myMthdAction.equals("A")) ? "adding" : "multiplying"
,
            myType.InvokeMember(myMthdName, 
            BindingFlags.InvokeMethod | BindingFlags.Public |
            BindingFlags.Static, null, null,
 inputValsList));
        Console.WriteLine("---");

        // Let's take a look at the method we created.
        // If you are interested in seeing the MSIL generated dynamically
 for
        // the method your program generated, change to the directory
 where 
        // you ran the compiled code sample and type "ildasm MyDynamicAsm.dll"
        //  at the prompt. When the list of manifest contents appears,
 click on
        // "MyDynamicType" and then on the name of the method
 you provided 
        // during execution.
        myAsmBuilder.Save("MyDynamicAsm.dll");
        MethodInfo myMthdInfo = myType.GetMethod(myMthdName);
        Console.WriteLine("Your Dynamic Method: {0};", myMthdInfo.ToString());
    } //main 
} //DemoMethodBuilder
継承階層継承階層
System.Object
   System.Reflection.MemberInfo
     System.Reflection.MethodBase
       System.Reflection.MethodInfo
        System.Reflection.Emit.MethodBuilder
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
MethodBuilder メンバ
System.Reflection.Emit 名前空間

MethodBuilder プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ Attributes オーバーライドされます。 このメソッド属性取得します
パブリック プロパティ CallingConvention オーバーライドされますメソッド呼び出し規約返します
パブリック プロパティ ContainsGenericParameters オーバーライドされます。 この型ではサポートされていません。
パブリック プロパティ DeclaringType オーバーライドされます。 このメソッド宣言する型を返します
パブリック プロパティ InitLocals このメソッドローカル変数を 0 で初期化するかどうか指定するブール値を取得または設定します。このプロパティ既定値true です。
パブリック プロパティ IsAbstract  メソッド抽象メソッドかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsAssembly  同じアセンブリ異なクラスからこのメソッド呼び出すことができるかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsConstructor  メソッドコンストラクタかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsFamily  このメソッドへのアクセスクラスメンバ派生クラスメンバ制限されているかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsFamilyAndAssembly  同じアセンブリ派生クラスからこのメソッド呼び出すことができるかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsFamilyOrAssembly  すべての派生クラスおよび同じアセンブリすべてのクラスからこのメソッド呼び出すことができるかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsFinal  このメソッドfinal かどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsGenericMethod オーバーライドされますメソッドジェネリック メソッドかどうかを示す値を取得します
パブリック プロパティ IsGenericMethodDefinition オーバーライドされます現在の MethodBuilder オブジェクトジェネリック メソッドの定義を表しているかどうかを示す値を取得します
パブリック プロパティ IsHideBySig  派生クラスで、正確に同じシグネチャを持つ同じ種類メンバだけが隠しメンバになるかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsPrivate  このメンバプライベートかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsPublic  パブリック メソッドかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsSpecialName  特別な名前のメソッドかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsStatic  メソッドstatic かどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsVirtual  メソッドvirtual かどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ MemberType  このメンバメソッドであることを示す MemberTypes 値を取得します。 ( MethodInfo から継承されます。)
パブリック プロパティ MetadataToken  メタデータ要素識別する値を取得します。 ( MemberInfo から継承されます。)
パブリック プロパティ MethodHandle オーバーライドされますメソッド内部ハンドル取得します。基になるメタデータ ハンドルアクセスするには、このハンドル使用します
パブリック プロパティ Module オーバーライドされます現在のメソッド定義するモジュール取得します
パブリック プロパティ Name オーバーライドされます。 このメソッドの名前を取得します
パブリック プロパティ ReflectedType オーバーライドされます。 このオブジェクト取得するためにリフレクション使用したクラス取得します
パブリック プロパティ ReturnParameter オーバーライドされます戻り値の型にカスタム修飾子があるかどうかなど、メソッド戻り値の型に関する情報格納している ParameterInfo オブジェクト取得します
パブリック プロパティ ReturnType  このメソッド戻り値の型を取得します。 ( MethodInfo から継承されます。)
パブリック プロパティ ReturnTypeCustomAttributes オーバーライドされますメソッド戻り値の型のカスタム属性返します
パブリック プロパティ Signature メソッドシグネチャ取得します
参照参照

関連項目

MethodBuilder クラス
System.Reflection.Emit 名前空間

MethodBuilder メソッド


パブリック メソッドパブリック メソッド

  名前 説明
パブリック メソッド AddDeclarativeSecurity このメソッド宣言セキュリティ追加します
パブリック メソッド CreateMethodBody 指定した MSIL (Microsoft Intermediate Language) 命令バイト配列使用してメソッド本体作成します
パブリック メソッド DefineGenericParameters 現在のメソッドジェネリック型パラメータの数を設定し、その名前を指定し制約の定義に使用できる GenericTypeParameterBuilder オブジェクト配列返します
パブリック メソッド DefineParameter このメソッドパラメータ定義します
パブリック メソッド Equals オーバーロードされますオーバーライドされます2 つオブジェクト等しかどうか判断します
パブリック メソッド GetBaseDefinition オーバーライドされますメソッド基本実装返します
パブリック メソッド GetCurrentMethod  現在実行中のメソッドを表す MethodBase オブジェクト返します。 ( MethodBase から継承されます。)
パブリック メソッド GetCustomAttributes オーバーロードされますオーバーライドされます。 このメソッドに対して定義されているカスタム属性返します
パブリック メソッド GetGenericArguments オーバーライドされますメソッドジェネリック メソッド場合に、メソッド型パラメータを表す GenericTypeParameterBuilder オブジェクト配列返します
パブリック メソッド GetGenericMethodDefinition オーバーライドされます。 このメソッド返します
パブリック メソッド GetHashCode オーバーライドされます。 このメソッドハッシュ コード取得します
パブリック メソッド GetILGenerator オーバーロードされます。 このメソッドILGenerator返します
パブリック メソッド GetMethodBody  派生クラスオーバーライドされると、現在のメソッドMSIL ストリームローカル変数、および例外アクセスできるようにする MethodBody オブジェクト取得します。 ( MethodBase から継承されます。)
パブリック メソッド GetMethodFromHandle  オーバーロードされます指定したハンドル使用してメソッド情報取得します。 ( MethodBase から継承されます。)
パブリック メソッド GetMethodImplementationFlags オーバーライドされますメソッド実装フラグ返します
パブリック メソッド GetModule このメソッド含まれているモジュールへの参照返します
パブリック メソッド GetParameters オーバーライドされます。 このメソッドパラメータ返します
パブリック メソッド GetToken このメソッドトークンを表す MethodToken返します
パブリック メソッド GetType  現在のインスタンスType取得します。 ( Object から継承されます。)
パブリック メソッド Invoke オーバーロードされますメソッド呼び出します。
パブリック メソッド IsDefined オーバーライドされます指定されカスタム属性の型が定義されているかどうか確認します
パブリック メソッド MakeGenericMethod オーバーライドされます指定したジェネリック型引数使用して現在のジェネリック メソッドの定義から構築されジェネリック メソッド返します
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 ( Object から継承されます。)
パブリック メソッド SetCustomAttribute オーバーロードされますカスタム属性設定します
パブリック メソッド SetImplementationFlags このメソッド実装フラグ設定します
パブリック メソッド SetMarshal このメソッド戻り値の型のマーシャリング情報設定します
パブリック メソッド SetParameters メソッドパラメータの数と型を設定します
パブリック メソッド SetReturnType メソッド戻り値の型を設定します
パブリック メソッド SetSignature 戻り値の型、パラメータの型、戻り値の型とパラメータの型の必須およびオプションカスタム修飾子を含むメソッド シグネチャ設定します
パブリック メソッド SetSymCustomAttribute BLOB使用してシンボリック カスタム属性設定します
パブリック メソッド ToString オーバーライドされます。 この MethodBuilder インスタンス文字列として返します
明示的インターフェイスの実装明示的インターフェイス実装
  名前 説明
インターフェイスの明示的な実装 System.Runtime.InteropServices._MethodBuilder.GetIDsOfNames 一連の名前を対応する一連のディスパッチ識別子割り当てます
インターフェイスの明示的な実装 System.Runtime.InteropServices._MethodBuilder.GetTypeInfo オブジェクト型情報取得しますその後は、インターフェイス型情報取得使用できます
インターフェイスの明示的な実装 System.Runtime.InteropServices._MethodBuilder.GetTypeInfoCount オブジェクト提供する型情報インターフェイスの数 (0 または 1) を取得します
インターフェイスの明示的な実装 System.Runtime.InteropServices._MethodBuilder.Invoke オブジェクト公開するプロパティおよびメソッドアクセスできるようにします。
参照参照

関連項目

MethodBuilder クラス
System.Reflection.Emit 名前空間

MethodBuilder メンバ

動的クラスメソッド (またはコンストラクタ) を定義および表現します

MethodBuilder データ型公開されるメンバを以下の表に示します


パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ Attributes オーバーライドされます。 このメソッド属性取得します
パブリック プロパティ CallingConvention オーバーライドされますメソッド呼び出し規約返します
パブリック プロパティ ContainsGenericParameters オーバーライドされます。 この型ではサポートされていません。
パブリック プロパティ DeclaringType オーバーライドされます。 このメソッド宣言する型を返します
パブリック プロパティ InitLocals このメソッドローカル変数を 0 で初期化するかどうか指定するブール値を取得または設定します。このプロパティ既定値true です。
パブリック プロパティ IsAbstract  メソッド抽象メソッドかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsAssembly  同じアセンブリ異なクラスからこのメソッド呼び出すことができるかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsConstructor  メソッドコンストラクタかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsFamily  このメソッドへのアクセスクラスメンバ派生クラスメンバ制限されているかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsFamilyAndAssembly  同じアセンブリ派生クラスからこのメソッド呼び出すことができるかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsFamilyOrAssembly  すべての派生クラスおよび同じアセンブリすべてのクラスからこのメソッド呼び出すことができるかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsFinal  このメソッドfinal かどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsGenericMethod オーバーライドされますメソッドジェネリック メソッドかどうかを示す値を取得します
パブリック プロパティ IsGenericMethodDefinition オーバーライドされます現在の MethodBuilder オブジェクトジェネリック メソッドの定義を表しているかどうかを示す値を取得します
パブリック プロパティ IsHideBySig  派生クラスで、正確に同じシグネチャを持つ同じ種類メンバだけが隠しメンバになるかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsPrivate  このメンバプライベートかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsPublic  パブリック メソッドかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsSpecialName  特別な名前のメソッドかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsStatic  メソッドstatic かどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsVirtual  メソッドvirtual かどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ MemberType  このメンバメソッドであることを示す MemberTypes 値を取得します。(MethodInfo から継承されます。)
パブリック プロパティ MetadataToken  メタデータ要素識別する値を取得します。(MemberInfo から継承されます。)
パブリック プロパティ MethodHandle オーバーライドされますメソッド内部ハンドル取得します。基になるメタデータ ハンドルアクセスするには、このハンドル使用します
パブリック プロパティ Module オーバーライドされます現在のメソッド定義するモジュール取得します
パブリック プロパティ Name オーバーライドされます。 このメソッドの名前を取得します
パブリック プロパティ ReflectedType オーバーライドされます。 このオブジェクト取得するためにリフレクション使用したクラス取得します
パブリック プロパティ ReturnParameter オーバーライドされます戻り値の型にカスタム修飾子があるかどうかなど、メソッド戻り値の型に関する情報格納している ParameterInfo オブジェクト取得します
パブリック プロパティ ReturnType  このメソッド戻り値の型を取得します。(MethodInfo から継承されます。)
パブリック プロパティ ReturnTypeCustomAttributes オーバーライドされますメソッド戻り値の型のカスタム属性返します
パブリック プロパティ Signature メソッドシグネチャ取得します
パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド AddDeclarativeSecurity このメソッド宣言セキュリティ追加します
パブリック メソッド CreateMethodBody 指定した MSIL (Microsoft Intermediate Language) 命令バイト配列使用してメソッド本体作成します
パブリック メソッド DefineGenericParameters 現在のメソッドジェネリック型パラメータの数を設定し、その名前を指定し制約の定義に使用できる GenericTypeParameterBuilder オブジェクト配列返します
パブリック メソッド DefineParameter このメソッドパラメータ定義します
パブリック メソッド Equals オーバーロードされますオーバーライドされます2 つオブジェクト等しかどうか判断します
パブリック メソッド GetBaseDefinition オーバーライドされますメソッド基本実装返します
パブリック メソッド GetCurrentMethod  現在実行中のメソッドを表す MethodBase オブジェクト返します。 (MethodBase から継承されます。)
パブリック メソッド GetCustomAttributes オーバーロードされますオーバーライドされます。 このメソッドに対して定義されているカスタム属性返します
パブリック メソッド GetGenericArguments オーバーライドされますメソッドジェネリック メソッド場合に、メソッド型パラメータを表す GenericTypeParameterBuilder オブジェクト配列返します
パブリック メソッド GetGenericMethodDefinition オーバーライドされます。 このメソッド返します
パブリック メソッド GetHashCode オーバーライドされます。 このメソッドハッシュ コード取得します
パブリック メソッド GetILGenerator オーバーロードされます。 このメソッドILGenerator返します
パブリック メソッド GetMethodBody  派生クラスオーバーライドされると、現在のメソッドMSIL ストリームローカル変数、および例外アクセスできるようにする MethodBody オブジェクト取得します。 (MethodBase から継承されます。)
パブリック メソッド GetMethodFromHandle  オーバーロードされます指定したハンドル使用してメソッド情報取得します。 (MethodBase から継承されます。)
パブリック メソッド GetMethodImplementationFlags オーバーライドされますメソッド実装フラグ返します
パブリック メソッド GetModule このメソッド含まれているモジュールへの参照返します
パブリック メソッド GetParameters オーバーライドされます。 このメソッドパラメータ返します
パブリック メソッド GetToken このメソッドトークンを表す MethodToken返します
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド Invoke オーバーロードされますメソッド呼び出します。
パブリック メソッド IsDefined オーバーライドされます指定されカスタム属性の型が定義されているかどうか確認します
パブリック メソッド MakeGenericMethod オーバーライドされます指定したジェネリック型引数使用して現在のジェネリック メソッドの定義から構築されジェネリック メソッド返します
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド SetCustomAttribute オーバーロードされますカスタム属性設定します
パブリック メソッド SetImplementationFlags このメソッド実装フラグ設定します
パブリック メソッド SetMarshal このメソッド戻り値の型のマーシャリング情報設定します
パブリック メソッド SetParameters メソッドパラメータの数と型を設定します
パブリック メソッド SetReturnType メソッド戻り値の型を設定します
パブリック メソッド SetSignature 戻り値の型、パラメータの型、戻り値の型とパラメータの型の必須およびオプションカスタム修飾子を含むメソッド シグネチャ設定します
パブリック メソッド SetSymCustomAttribute BLOB使用してシンボリック カスタム属性設定します
パブリック メソッド ToString オーバーライドされます。 この MethodBuilder インスタンス文字列として返します
明示的インターフェイスの実装明示的インターフェイス実装
  名前 説明
インターフェイスの明示的な実装 System.Runtime.InteropServices._MethodBuilder.GetIDsOfNames 一連の名前を対応する一連のディスパッチ識別子割り当てます
インターフェイスの明示的な実装 System.Runtime.InteropServices._MethodBuilder.GetTypeInfo オブジェクト型情報取得しますその後は、インターフェイス型情報取得使用できます
インターフェイスの明示的な実装 System.Runtime.InteropServices._MethodBuilder.GetTypeInfoCount オブジェクト提供する型情報インターフェイスの数 (0 または 1) を取得します
インターフェイスの明示的な実装 System.Runtime.InteropServices._MethodBuilder.Invoke オブジェクト公開するプロパティおよびメソッドアクセスできるようにします。
参照参照

関連項目

MethodBuilder クラス
System.Reflection.Emit 名前空間

_MethodBuilder インターフェイス

メモ : このインターフェイスは、.NET Framework version 2.0新しく追加されたものです。

MethodBuilder クラスアンマネージ コード公開します

 

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ComVisibleAttribute(True)> _
<GuidAttribute("007D8A14-FDF3-363E-9A0B-FEC0618260A2")>
 _
<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)> _
<CLSCompliantAttribute(False)> _
Public Interface _MethodBuilder
Dim instance As _MethodBuilder
[ComVisibleAttribute(true)] 
[GuidAttribute("007D8A14-FDF3-363E-9A0B-FEC0618260A2")] 
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] 
[CLSCompliantAttribute(false)] 
public interface _MethodBuilder
[ComVisibleAttribute(true)] 
[GuidAttribute(L"007D8A14-FDF3-363E-9A0B-FEC0618260A2")] 
[InterfaceTypeAttribute(ComInterfaceType::InterfaceIsIUnknown)] 
[CLSCompliantAttribute(false)] 
public interface class _MethodBuilder
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute GuidAttribute("007D8A14-FDF3-363E-9A0B-FEC0618260A2") */
 
/** @attribute InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown) */ 
/** @attribute CLSCompliantAttribute(false) */ 
public interface _MethodBuilder
ComVisibleAttribute(true) 
GuidAttribute("007D8A14-FDF3-363E-9A0B-FEC0618260A2") 
InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown) 
CLSCompliantAttribute(false) 
public interface _MethodBuilder
解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
_MethodBuilder メンバ
System.Runtime.InteropServices 名前空間

_MethodBuilder メソッド


_MethodBuilder メンバ




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「_MethodBuilder」の関連用語

_MethodBuilderのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



_MethodBuilderのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS