MethodBuilder クラス

定義

動的クラスのメソッドまたはコンストラクターを定義し、表わします。Defines and represents a method (or constructor) on a dynamic class.

public ref class MethodBuilder sealed : System::Reflection::MethodInfo, System::Runtime::InteropServices::_MethodBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class MethodBuilder : System.Reflection.MethodInfo, System.Runtime.InteropServices._MethodBuilder
type MethodBuilder = class
    inherit MethodInfo
    interface _MethodBuilder
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Implements _MethodBuilder
継承
属性
実装

次の例では、MethodBuilder クラスを使用して、動的な型の中にメソッドを作成します。The following example uses the MethodBuilder class to create a method within a dynamic type.

using namespace System;
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::Add );

      }
   }

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

void main()
{
   AppDomain^ myDomain = AppDomain::CurrentDomain;
   AssemblyName^ asmName = gcnew AssemblyName;
   asmName->Name = "MyDynamicAsm";
   AssemblyBuilder^ myAsmBuilder = myDomain->DefineDynamicAssembly( asmName, 
                                                                    AssemblyBuilderAccess::RunAndSave );
   ModuleBuilder^ myModule = myAsmBuilder->DefineDynamicModule( "MyDynamicAsm", 
                                                                "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 (default) or [M]ultiply these numbers? " );
   String^ myMthdAction = Console::ReadLine()->ToUpper();
   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();
   array<Type^>^myMthdParams = gcnew array<Type^>(inputNumsList->Length);
   array<Object^>^inputValsList = gcnew array<Object^>(inputNumsList->Length);
   for each (String^ inputNum in inputNumsList)
   {
      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( "M" )) ? "multiplying" : "adding"), 
                       myType->InvokeMember( myMthdName, 
                                             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 );
}


using System;
using System.Reflection;
using 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 (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 = AppDomain.CurrentDomain;
        AssemblyName asmName = new AssemblyName();
        asmName.Name = "MyDynamicAsm";
        
        AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(
                                       asmName, 
                                       AssemblyBuilderAccess.RunAndSave);

        ModuleBuilder myModule = myAsmBuilder.DefineDynamicModule("MyDynamicAsm",
                                                                  "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 (default) or [M]ultiply these numbers? ");
        string myMthdAction = Console.ReadLine().ToUpper();
        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(myTypeBld,
                             myMthdName,
                             myMthdParams,
                             typeof(int),        
                             myMthdAction);

        Type myType = myTypeBld.CreateType();

        Console.WriteLine("---");
        Console.WriteLine("The result of {0} the inputted values is: {1}",
                          ((myMthdAction == "M") ? "multiplying" : "adding"),
                          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());    
    }
}
Imports System.Reflection
Imports System.Reflection.Emit

Class DemoMethodBuilder
   
   Public Shared Sub AddMethodDynamically(ByVal myTypeBld As TypeBuilder, _
                                          ByVal mthdName As String, _
                                          ByVal mthdParams() As Type, _
                                          ByVal returnType As Type, _
                                          ByVal 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 
    
   
   Public Shared Sub Main()
      
      Dim myDomain As AppDomain = AppDomain.CurrentDomain
      Dim asmName As New AssemblyName()
      asmName.Name = "MyDynamicAsm"
      
      Dim myAsmBuilder As AssemblyBuilder = myDomain.DefineDynamicAssembly(asmName, _
                                            AssemblyBuilderAccess.RunAndSave)
      
      Dim myModule As ModuleBuilder = myAsmBuilder.DefineDynamicModule("MyDynamicAsm", _
                                                                       "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 (default) or [M]ultiply these numbers? ")
      Dim myMthdAction As String = Console.ReadLine().ToUpper()
      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 = "M" Then
         description = "multiplying"
      Else
         description = "adding"
      End If

      Console.WriteLine("---")
      Console.WriteLine("The result of {0} the 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 
End Class 

注釈

MethodBuilder クラスは、名前、属性、署名、およびメソッドの本体を含む、Microsoft 中間言語 (MSIL) のメソッドを完全に記述するために使用されます。The MethodBuilder class is used to fully describe a method in Microsoft intermediate language (MSIL), including the name, attributes, signature, and method body. これは、実行時にクラスを作成するために、TypeBuilder クラスと組み合わせて使用されます。It is used in conjunction with the TypeBuilder class to create classes at runtime.

型のメンバーとしてのグローバルメソッドとメソッドGlobal methods and methods as type members

リフレクション出力を使用して、グローバルメソッドを定義したり、型のメンバーとしてメソッドを定義したりできます。You can use reflection emit to define global methods and to define methods as type members. メソッドを定義する Api は MethodBuilder オブジェクトを返します。The APIs that define methods return MethodBuilder objects.

グローバルメソッドGlobal methods

グローバルメソッドは、 MethodBuilderオブジェクトを返す ModuleBuilder.DefineGlobalMethod メソッドを使用して定義されます。A global method is defined by using the ModuleBuilder.DefineGlobalMethod method, which returns a MethodBuilder object.

グローバルメソッドは静的である必要があります。Global methods must be static. 動的モジュールにグローバルメソッドが含まれている場合は、すべてのグローバル関数が定義されるまで、共通言語ランタイムによって動的モジュールの修正が延期されるため、動的モジュールまたは含んでいる動的アセンブリを永続化する前に、ModuleBuilder.CreateGlobalFunctions メソッドを呼び出す必要があります。If a dynamic module contains global methods, the ModuleBuilder.CreateGlobalFunctions method must be called before persisting the dynamic module or the containing dynamic assembly because the common language runtime postpones fixing up the dynamic module until all global functions have been defined.

グローバルネイティブメソッドは、ModuleBuilder.DefinePInvokeMethod メソッドを使用して定義されます。A global native method is defined by using the ModuleBuilder.DefinePInvokeMethod method. Platform invoke (PInvoke) メソッドを abstract または virtual として宣言することはできません。Platform invoke (PInvoke) methods must not be declared abstract or virtual. ランタイムは、プラットフォーム呼び出しメソッドの MethodAttributes.PinvokeImpl 属性を設定します。The runtime sets the MethodAttributes.PinvokeImpl attribute for a platform invoke method.

メソッド (型のメンバーとして)Methods as members of types

メソッドは、MethodBuilder オブジェクトを返す TypeBuilder.DefineMethod メソッドを使用して、型のメンバーとして定義されます。A method is defined as a type member by using the TypeBuilder.DefineMethod method, which returns a MethodBuilder object.

DefineParameter メソッドを使用して、パラメーターの名前とパラメーターの属性、または戻り値のを設定します。The DefineParameter method is used to set the name and parameter attributes of a parameter, or of the return value. このメソッドによって返される ParameterBuilder オブジェクトは、パラメーターまたは戻り値を表します。The ParameterBuilder object returned by this method represents a parameter or the return value. ParameterBuilder オブジェクトを使用して、マーシャリングの設定、定数値の設定、およびカスタム属性の適用を行うことができます。The ParameterBuilder object can be used to set the marshaling, to set the constant value, and to apply custom attributes.

属性Attributes

MethodAttributes 列挙体のメンバーは、動的メソッドの正確な文字を定義します。Members of the MethodAttributes enumeration define the precise character of a dynamic method:

既知の問題Known Issues

プロパティ

Attributes

このメソッドの属性を取得します。Retrieves the attributes for this method.

CallingConvention

メソッドの呼び出し規則を返します。Returns the calling convention of the method.

ContainsGenericParameters

この型ではサポートされていません。Not supported for this type.

CustomAttributes

このメンバーのカスタム属性を含むコレクションを取得します。Gets a collection that contains this member's custom attributes.

(継承元 MemberInfo)
DeclaringType

このメソッドを宣言する型を返します。Returns the type that declares this method.

InitLocals

このメソッドのローカル変数をゼロに初期化するかどうかを指定するブール値を取得または設定します。Gets or sets a Boolean value that specifies whether the local variables in this method are zero initialized. このプロパティの既定値は true です。The default value of this property is true.

IsAbstract

メソッドが抽象メソッドかどうかを示す値を取得します。Gets a value indicating whether the method is abstract.

(継承元 MethodBase)
IsAssembly

このメソッドまたはコンストラクターを参照できる範囲が Assembly によって示されるかどうかを表す値を取得します。ここで判定されるのは、このメソッドまたはコンストラクターが同じアセンブリ内の他の型でのみ参照でき、アセンブリ外部の派生型では参照できないものであることです。Gets a value indicating whether the potential visibility of this method or constructor is described by Assembly; that is, the method or constructor is visible at most to other types in the same assembly, and is not visible to derived types outside the assembly.

(継承元 MethodBase)
IsCollectible

この MemberInfo オブジェクトが、収集可能な AssemblyLoadContext に保持されているアセンブリの一部であるかどうかを示す値を取得します。Gets a value that indicates whether this MemberInfo object is part of an assembly held in a collectible AssemblyLoadContext.

(継承元 MemberInfo)
IsConstructedGenericMethod
IsConstructor

メソッドがコンストラクターかどうかを示す値を取得します。Gets a value indicating whether the method is a constructor.

(継承元 MethodBase)
IsFamily

このメソッドまたはコンストラクターへの参照範囲が Family によって正しく示されるかどうかを表す値を取得します。ここで判定されるのは、メソッドまたはコンストラクターはそれらのクラスと派生クラスの内側でのみ参照できるものであることです。Gets a value indicating whether the visibility of this method or constructor is described by Family; that is, the method or constructor is visible only within its class and derived classes.

(継承元 MethodBase)
IsFamilyAndAssembly

このメソッドまたはコンストラクターへの参照範囲が FamANDAssem によって示されるかどうかを表す値を取得します。ここで判定されるのは、メソッドまたはコンストラクターは派生クラスから呼び出すことができるが、それらが同じアセンブリ内にある場合に限るものであることです。Gets a value indicating whether the visibility of this method or constructor is described by FamANDAssem; that is, the method or constructor can be called by derived classes, but only if they are in the same assembly.

(継承元 MethodBase)
IsFamilyOrAssembly

このメソッドまたはコンストラクターを参照可能な範囲が FamORAssem によって示されるかどうかを表す値を取得します。ここで判定されるのは、メソッドまたはコンストラクターは任意の場所にある派生クラスと、同じアセンブリ内のクラスから呼び出すことができるものであることです。Gets a value indicating whether the potential visibility of this method or constructor is described by FamORAssem; that is, the method or constructor can be called by derived classes wherever they are, and by classes in the same assembly.

(継承元 MethodBase)
IsFinal

このメソッドが final かどうかを示す値を取得します。Gets a value indicating whether this method is final.

(継承元 MethodBase)
IsGenericMethod

メソッドがジェネリック メソッドかどうかを示す値を取得します。Gets a value indicating whether the method is a generic method.

IsGenericMethodDefinition

現在の MethodBuilder オブジェクトがジェネリック メソッドの定義を表しているかどうかを示す値を取得します。Gets a value indicating whether the current MethodBuilder object represents the definition of a generic method.

IsHideBySig

派生クラスで、正確に同じシグネチャを持つ同じ種類のメンバーだけが隠しメンバーになるかどうかを示す値を取得します。Gets a value indicating whether only a member of the same kind with exactly the same signature is hidden in the derived class.

(継承元 MethodBase)
IsPrivate

このメンバーがプライベートかどうかを示す値を取得します。Gets a value indicating whether this member is private.

(継承元 MethodBase)
IsPublic

パブリック メソッドかどうかを示す値を取得します。Gets a value indicating whether this is a public method.

(継承元 MethodBase)
IsSecurityCritical

常に NotSupportedException をスローします。Throws a NotSupportedException in all cases.

IsSecuritySafeCritical

常に NotSupportedException をスローします。Throws a NotSupportedException in all cases.

IsSecurityTransparent

常に NotSupportedException をスローします。Throws a NotSupportedException in all cases.

IsSpecialName

特別な名前のメソッドかどうかを示す値を取得します。Gets a value indicating whether this method has a special name.

(継承元 MethodBase)
IsStatic

メソッドが static であるかどうかを示す値を取得します。Gets a value indicating whether the method is static.

(継承元 MethodBase)
IsVirtual

メソッドが virtual であるかどうかを示す値を取得します。Gets a value indicating whether the method is virtual.

(継承元 MethodBase)
MemberType

このメンバーがメソッドであることを示す MemberTypes 値を取得します。Gets a MemberTypes value indicating that this member is a method.

(継承元 MethodInfo)
MetadataToken

メタデータ要素を識別する値を取得します。Gets a value that identifies a metadata element.

(継承元 MemberInfo)
MethodHandle

メソッドの内部ハンドルを取得します。Retrieves the internal handle for the method. 基になるメタデータ ハンドルにアクセスするには、このハンドルを使用します。Use this handle to access the underlying metadata handle.

MethodImplementationFlags
Module

現在のメソッドが定義されているモジュールを取得します。Gets the module in which the current method is being defined.

Name

このメソッドの名前を取得します。Retrieves the name of this method.

ReflectedType

このオブジェクトを取得するためにリフレクションで使用されたクラスを取得します。Retrieves the class that was used in reflection to obtain this object.

ReturnParameter

戻り値の型にカスタム修飾子があるかどうかなど、メソッドの戻り値の型に関する情報を格納している ParameterInfo オブジェクトを取得します。Gets a ParameterInfo object that contains information about the return type of the method, such as whether the return type has custom modifiers.

ReturnType

この MethodBuilder によって表されるメソッドの戻り値の型を取得します。Gets the return type of the method represented by this MethodBuilder.

ReturnTypeCustomAttributes

メソッドの戻り値の型のカスタム属性を返します。Returns the custom attributes of the method's return type.

Signature

メソッドの署名を取得します。Retrieves the signature of the method.

メソッド

AddDeclarativeSecurity(SecurityAction, PermissionSet)

このメソッドに宣言セキュリティを追加します。Adds declarative security to this method.

CreateDelegate(Type)

このメソッドから、指定した型のデリゲートを作成します。Creates a delegate of the specified type from this method.

(継承元 MethodInfo)
CreateDelegate(Type, Object)

このメソッドから、指定した型のデリゲートを、指定したターゲットを使用して作成します。Creates a delegate of the specified type with the specified target from this method.

(継承元 MethodInfo)
CreateMethodBody(Byte[], Int32)

Microsoft intermediate language (MSIL) の命令の指定されたバイト配列を使用して、メソッドの本体を作成します。Creates the body of the method using a supplied byte array of Microsoft intermediate language (MSIL) instructions.

DefineGenericParameters(String[])

現在のメソッドのジェネリック型パラメーターの数を設定し、それらのパラメーターの名前を指定し、パラメーターの制約の定義に使用できる GenericTypeParameterBuilder オブジェクトの配列を返します。Sets the number of generic type parameters for the current method, specifies their names, and returns an array of GenericTypeParameterBuilder objects that can be used to define their constraints.

DefineParameter(Int32, ParameterAttributes, String)

パラメーター属性およびこのメソッドのパラメーターの名前、またはこのメソッドの戻り値の名前を設定します。Sets the parameter attributes and the name of a parameter of this method, or of the return value of this method. カスタム属性を適用するために使用できる ParameterBuilder を返します。Returns a ParameterBuilder that can be used to apply custom attributes.

Equals(Object)

指定したオブジェクトが、このインスタンスと等しいかどうかを判定します。Determines whether the given object is equal to this instance.

GetBaseDefinition()

メソッドの基本実装を返します。Return the base implementation for a method.

GetCustomAttributes(Boolean)

このメソッドの定義済みのカスタム属性をすべて返します。Returns all the custom attributes defined for this method.

GetCustomAttributes(Type, Boolean)

指定された型で識別されるカスタム属性を返します。Returns the custom attributes identified by the given type.

GetCustomAttributesData()

ターゲット メンバーに適用されている属性に関するデータを表す CustomAttributeData オブジェクトのリストを返します。Returns a list of CustomAttributeData objects representing data about the attributes that have been applied to the target member.

(継承元 MemberInfo)
GetGenericArguments()

メソッドの型パラメーターがジェネリックの場合、そのパラメーターを表す GenericTypeParameterBuilder オブジェクトの配列。Returns an array of GenericTypeParameterBuilder objects that represent the type parameters of the method, if it is generic.

GetGenericMethodDefinition()

このメソッドを返します。Returns this method.

GetHashCode()

このメソッドのハッシュ コードを取得します。Gets the hash code for this method.

GetILGenerator()

このメソッドの ILGenerator を返します。既定の Microsoft Intermediate Language (MSIL) のストリーム サイズは 64 バイトです。Returns an ILGenerator for this method with a default Microsoft intermediate language (MSIL) stream size of 64 bytes.

GetILGenerator(Int32)

指定された Microsoft Intermediate Language (MSIL) のストリーム サイズにより、このメソッドの ILGenerator を返します。Returns an ILGenerator for this method with the specified Microsoft intermediate language (MSIL) stream size.

GetMethodBody()

派生クラスでオーバーライドされると、現在のメソッドの MSIL ストリーム、ローカル変数、および例外にアクセスできるようにする MethodBody オブジェクトを取得します。When overridden in a derived class, gets a MethodBody object that provides access to the MSIL stream, local variables, and exceptions for the current method.

(継承元 MethodBase)
GetMethodImplementationFlags()

このメソッドの実装フラグを返します。Returns the implementation flags for the method.

GetModule()

このメソッドを含むモジュールへの参照を返します。Returns a reference to the module that contains this method.

GetParameters()

このメソッドのパラメーターを返します。Returns the parameters of this method.

GetToken()

このメソッドのトークンを表わす MethodToken を返します。Returns the MethodToken that represents the token for this method.

GetType() (継承元 MethodInfo)
HasSameMetadataDefinitionAs(MemberInfo) (継承元 MemberInfo)
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)

指定されたバインダーの制約下で、指定されたパラメーターを渡しつつ、指定されたオブジェクトのこのインスタンスによって反映されるメソッドを動的に呼び出します。Dynamically invokes the method reflected by this instance on the given object, passing along the specified parameters, and under the constraints of the given binder.

Invoke(Object, Object[]) (継承元 MethodInfo)
IsDefined(Type, Boolean)

指定されたカスタム属性の型が定義されているかどうかを確認します。Checks if the specified custom attribute type is defined.

MakeGenericMethod(Type[])

指定したジェネリック型引数を使用して、現在のジェネリック メソッド定義から構築されたジェネリック メソッドを返します。Returns a generic method constructed from the current generic method definition using the specified generic type arguments.

MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
SetCustomAttribute(ConstructorInfo, Byte[])

指定されたカスタム属性の blob を使用して、カスタム属性を設定します。Sets a custom attribute using a specified custom attribute blob.

SetCustomAttribute(CustomAttributeBuilder)

カスタム属性ビルダーを使用して、カスタム属性を設定します。Sets a custom attribute using a custom attribute builder.

SetImplementationFlags(MethodImplAttributes)

このメソッドの実装フラグを取得または設定します。Sets the implementation flags for this method.

SetMarshal(UnmanagedMarshal)

このメソッドの戻り値の型のマーシャリング情報を設定します。Sets marshaling information for the return type of this method.

SetMethodBody(Byte[], Int32, Byte[], IEnumerable<ExceptionHandler>, IEnumerable<Int32>)

Microsoft intermediate language (MSIL) の命令の指定したバイト配列を使用して、メソッドの本体を作成します。Creates the body of the method by using a specified byte array of Microsoft intermediate language (MSIL) instructions.

SetParameters(Type[])

メソッドのパラメーターの数と型を設定します。Sets the number and types of parameters for a method.

SetReturnType(Type)

メソッドの戻り値の型を設定します。Sets the return type of the method.

SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][])

メソッドのシグネチャを設定します。それには、戻り値の型、パラメーターの型、および戻り値の型とパラメーター型の必須カスタム修飾子と省略可能カスタム修飾子が含まれます。Sets the method signature, including the return type, the parameter types, and the required and optional custom modifiers of the return type and parameter types.

SetSymCustomAttribute(String, Byte[])

blob を使用して、シンボリック カスタム属性を設定します。Set a symbolic custom attribute using a blob.

ToString()

この MethodBuilder インスタンスを文字列として返します。Returns this MethodBuilder instance as a string.

明示的なインターフェイスの実装

_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(継承元 MemberInfo)
_MemberInfo.GetType()

Type クラスを表す MemberInfo オブジェクトを取得します。Gets a Type object representing the MemberInfo class.

(継承元 MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この型情報を使用して、インターフェイスの型情報を取得できます。Retrieves the type information for an object, which can then be used to get the type information for an interface.

(継承元 MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(継承元 MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(継承元 MemberInfo)
_MethodBase.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(継承元 MethodBase)
_MethodBase.GetType()

このメンバーの詳細については、「GetType()」をご覧ください。For a description of this member, see GetType().

(継承元 MethodBase)
_MethodBase.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この型情報を使用して、インターフェイスの型情報を取得できます。Retrieves the type information for an object, which can then be used to get the type information for an interface.

(継承元 MethodBase)
_MethodBase.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(継承元 MethodBase)
_MethodBase.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(継承元 MethodBase)
_MethodBase.IsAbstract

このメンバーの詳細については、「IsAbstract」をご覧ください。For a description of this member, see IsAbstract.

(継承元 MethodBase)
_MethodBase.IsAssembly

このメンバーの詳細については、「IsAssembly」をご覧ください。For a description of this member, see IsAssembly.

(継承元 MethodBase)
_MethodBase.IsConstructor

このメンバーの詳細については、「IsConstructor」をご覧ください。For a description of this member, see IsConstructor.

(継承元 MethodBase)
_MethodBase.IsFamily

このメンバーの詳細については、「IsFamily」をご覧ください。For a description of this member, see IsFamily.

(継承元 MethodBase)
_MethodBase.IsFamilyAndAssembly

このメンバーの詳細については、「IsFamilyAndAssembly」をご覧ください。For a description of this member, see IsFamilyAndAssembly.

(継承元 MethodBase)
_MethodBase.IsFamilyOrAssembly

このメンバーの詳細については、「IsFamilyOrAssembly」をご覧ください。For a description of this member, see IsFamilyOrAssembly.

(継承元 MethodBase)
_MethodBase.IsFinal

このメンバーの詳細については、「IsFinal」をご覧ください。For a description of this member, see IsFinal.

(継承元 MethodBase)
_MethodBase.IsHideBySig

このメンバーの詳細については、「IsHideBySig」をご覧ください。For a description of this member, see IsHideBySig.

(継承元 MethodBase)
_MethodBase.IsPrivate

このメンバーの詳細については、「IsPrivate」をご覧ください。For a description of this member, see IsPrivate.

(継承元 MethodBase)
_MethodBase.IsPublic

このメンバーの詳細については、「IsPublic」をご覧ください。For a description of this member, see IsPublic.

(継承元 MethodBase)
_MethodBase.IsSpecialName

このメンバーの詳細については、「IsSpecialName」をご覧ください。For a description of this member, see IsSpecialName.

(継承元 MethodBase)
_MethodBase.IsStatic

このメンバーの詳細については、「IsStatic」をご覧ください。For a description of this member, see IsStatic.

(継承元 MethodBase)
_MethodBase.IsVirtual

このメンバーの詳細については、「IsVirtual」をご覧ください。For a description of this member, see IsVirtual.

(継承元 MethodBase)
_MethodBuilder.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

_MethodBuilder.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この型情報を使用して、インターフェイスの型情報を取得できます。Retrieves the type information for an object, which can then be used to get the type information for an interface.

_MethodBuilder.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

_MethodBuilder.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

_MethodInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(継承元 MethodInfo)
_MethodInfo.GetType()

COM から GetType() メソッドにアクセスできるようにします。Provides access to the GetType() method from COM.

(継承元 MethodInfo)
_MethodInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(継承元 MethodInfo)
_MethodInfo.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(継承元 MethodInfo)
_MethodInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(継承元 MethodInfo)
ICustomAttributeProvider.GetCustomAttributes(Boolean) (継承元 MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) (継承元 MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean) (継承元 MemberInfo)

拡張メソッド

GetCustomAttribute(MemberInfo, Type)

指定したメンバーに適用される指定した型のカスタム属性を取得します。Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute(MemberInfo, Type, Boolean)

指定したメンバーに適用される指定した型のカスタム属性を取得し、オプションでそのメンバーの先祖を調べます。Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttribute<T>(MemberInfo)

指定したメンバーに適用される指定した型のカスタム属性を取得します。Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute<T>(MemberInfo, Boolean)

指定したメンバーに適用される指定した型のカスタム属性を取得し、オプションでそのメンバーの先祖を調べます。Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo)

指定されたメンバーに適用されるカスタム属性のコレクションを取得します。Retrieves a collection of custom attributes that are applied to a specified member.

GetCustomAttributes(MemberInfo, Boolean)

指定されたメンバーに適用されるカスタム属性のコレクションを取得し、オプションでそのメンバーの先祖を調べます。Retrieves a collection of custom attributes that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo, Type)

指定されたメンバーに適用される指定された型のカスタム属性のコレクションを取得します。Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes(MemberInfo, Type, Boolean)

指定されたメンバーに適用されている指定された型のカスタム属性のコレクションを取得し、オプションでそのメンバーの先祖を調べます。Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes<T>(MemberInfo)

指定されたメンバーに適用される指定された型のカスタム属性のコレクションを取得します。Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes<T>(MemberInfo, Boolean)

指定されたメンバーに適用されている指定された型のカスタム属性のコレクションを取得し、オプションでそのメンバーの先祖を調べます。Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.

IsDefined(MemberInfo, Type)

指定された型のカスタム属性が指定されたメンバーに適用されているかどうかを示します。Indicates whether custom attributes of a specified type are applied to a specified member.

IsDefined(MemberInfo, Type, Boolean)

指定された型のカスタム属性が指定されたメンバーに適用され、オプションで先祖に適用されているかどうかを示します。Indicates whether custom attributes of a specified type are applied to a specified member, and, optionally, applied to its ancestors.

GetMetadataToken(MemberInfo)

指定されたメンバーのメタデータ トークンを取得します (存在する場合)。Gets a metadata token for the given member, if available.

HasMetadataToken(MemberInfo)

指定されたメンバーに対してメタデータ トークンを使用できるかどうかを示す値を返します。Returns a value that indicates whether a metadata token is available for the specified member.

GetBaseDefinition(MethodInfo)
GetRuntimeBaseDefinition(MethodInfo)

メソッドが最初に宣言された直接基本クラスまたは間接基本クラスの指定したメソッドを表すオブジェクトを取得します。Retrieves an object that represents the specified method on the direct or indirect base class where the method was first declared.

適用対象