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

ConstructorBuilder クラス

動的クラスコンストラクタを定義および表現します

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

<ClassInterfaceAttribute(ClassInterfaceType.None)> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class
 ConstructorBuilder
    Inherits ConstructorInfo
    Implements _ConstructorBuilder
Dim instance As ConstructorBuilder
[ClassInterfaceAttribute(ClassInterfaceType.None)] 
[ComVisibleAttribute(true)] 
public sealed class ConstructorBuilder : ConstructorInfo,
 _ConstructorBuilder
[ClassInterfaceAttribute(ClassInterfaceType::None)] 
[ComVisibleAttribute(true)] 
public ref class ConstructorBuilder sealed
 : public ConstructorInfo, _ConstructorBuilder
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.None) */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class ConstructorBuilder extends
 ConstructorInfo implements _ConstructorBuilder
ClassInterfaceAttribute(ClassInterfaceType.None) 
ComVisibleAttribute(true) 
public final class ConstructorBuilder extends
 ConstructorInfo implements _ConstructorBuilder
解説解説
メモメモ

このクラス適用される HostProtectionAttribute 属性Resources プロパティの値は、MayLeakOnAbort です。HostProtectionAttribute は、デスクトップ アプリケーション (一般的にはアイコンダブルクリックコマンド入力、またはブラウザURL入力して起動するアプリケーション) には影響しません。詳細については、HostProtectionAttribute クラストピックまたは「SQL Server プログラミングホスト保護属性」を参照してください

ConstructorBuilder使用してMSIL (Microsoft Intermediate Language) のコンストラクタを完全に記述します。名前、属性シグネチャ、およびコンストラクタ本体含まれます。TypeBuilder クラス組み合わせて使用され実行時クラス作成します。DefineConstructor を呼び出してConstructorBuilderインスタンス取得します

ConstructorBuilder実際の使用方法次のコード例示します

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

 _

Class TestCtorBuilder
   
   
   Public Shared Function
 DynamicPointTypeGen() As Type
      
      Dim pointType As Type = Nothing
      Dim ctorParams() As Type = {GetType(Integer),
 GetType(Integer), GetType(Integer)}
      
      Dim myDomain As AppDomain = Thread.GetDomain()
      Dim myAsmName As New
 AssemblyName()
      myAsmName.Name = "MyDynamicAssembly"
      
      Dim myAsmBuilder As AssemblyBuilder =
 myDomain.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.RunAndSave)
      
      Dim pointModule As ModuleBuilder = myAsmBuilder.DefineDynamicModule("PointModule",
 "Point.dll")
      
      Dim pointTypeBld As TypeBuilder = pointModule.DefineType("Point",
 TypeAttributes.Public)
      
      Dim xField As FieldBuilder = pointTypeBld.DefineField("x",
 GetType(Integer), FieldAttributes.Public)
      Dim yField As FieldBuilder = pointTypeBld.DefineField("y",
 GetType(Integer), FieldAttributes.Public)
      Dim zField As FieldBuilder = pointTypeBld.DefineField("z",
 GetType(Integer), FieldAttributes.Public)
      
      Dim objType As Type = Type.GetType("System.Object")
      Dim objCtor As ConstructorInfo = objType.GetConstructor(New
 Type() {})
      
      Dim pointCtor As ConstructorBuilder =
 pointTypeBld.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard,
 ctorParams)
      Dim ctorIL As ILGenerator = pointCtor.GetILGenerator()
      
      ' NOTE: ldarg.0 holds the "this" reference - ldarg.1,
 ldarg.2, and ldarg.3
      ' hold the actual passed parameters. ldarg.0 is used by instance
 methods
      ' to hold a reference to the current calling object instance.
 Static methods
      ' do not use arg.0, since they are not instantiated and hence
 no reference
      ' is needed to distinguish them. 
      ctorIL.Emit(OpCodes.Ldarg_0)
      
      ' Here, we wish to create an instance of System.Object by invoking
 its
      ' constructor, as specified above.
      ctorIL.Emit(OpCodes.Call, objCtor)
      
      ' Now, we'll load the current instance ref in arg 0, along
      ' with the value of parameter "x" stored in arg 1, into
 stfld.
      ctorIL.Emit(OpCodes.Ldarg_0)
      ctorIL.Emit(OpCodes.Ldarg_1)
      ctorIL.Emit(OpCodes.Stfld, xField)
      
      ' Now, we store arg 2 "y" in the current instance with
 stfld.
      ctorIL.Emit(OpCodes.Ldarg_0)
      ctorIL.Emit(OpCodes.Ldarg_2)
      ctorIL.Emit(OpCodes.Stfld, yField)
      
      ' Last of all, arg 3 "z" gets stored in the current
 instance.
      ctorIL.Emit(OpCodes.Ldarg_0)
      ctorIL.Emit(OpCodes.Ldarg_3)
      ctorIL.Emit(OpCodes.Stfld, zField)
      
      ' Our work complete, we return.
      ctorIL.Emit(OpCodes.Ret)
      
      ' Now, let's create three very simple methods so we can see our
 fields.
      Dim mthdNames() As String
 = {"GetX", "GetY",
 "GetZ"}
      
      Dim mthdName As String
      For Each mthdName In
  mthdNames
         Dim getFieldMthd As MethodBuilder
 = pointTypeBld.DefineMethod(mthdName, MethodAttributes.Public, GetType(Integer),
 Nothing)
         Dim mthdIL As ILGenerator = getFieldMthd.GetILGenerator()
         
         mthdIL.Emit(OpCodes.Ldarg_0)
         Select Case mthdName
            Case "GetX"
               mthdIL.Emit(OpCodes.Ldfld, xField)
            Case "GetY"
               mthdIL.Emit(OpCodes.Ldfld, yField)
            Case "GetZ"
               mthdIL.Emit(OpCodes.Ldfld, zField)
         End Select
         
         mthdIL.Emit(OpCodes.Ret)
      Next mthdName 
      ' Finally, we create the type.
      pointType = pointTypeBld.CreateType()
      
      ' Let's save it, just for posterity.
      myAsmBuilder.Save("Point.dll")
      
      Return pointType
   End Function 'DynamicPointTypeGen
    
   
   Public Shared Sub Main()
      
      Dim myDynamicType As Type = Nothing
      Dim aPoint As Object
 = Nothing
      Dim aPtypes() As Type = {GetType(Integer),
 GetType(Integer), GetType(Integer)}
      Dim aPargs() As Object
 = {4, 5, 6}
      
      ' Call the  method to build our dynamic class.
      myDynamicType = DynamicPointTypeGen()
      
      Console.WriteLine("Some information about my new Type
 '{0}':", myDynamicType.FullName)
      Console.WriteLine("Assembly: '{0}'", myDynamicType.Assembly)
      Console.WriteLine("Attributes: '{0}'", myDynamicType.Attributes)
      Console.WriteLine("Module: '{0}'", myDynamicType.Module)
      Console.WriteLine("Members: ")
      Dim member As MemberInfo
      For Each member In
  myDynamicType.GetMembers()
         Console.WriteLine("-- {0} {1};", member.MemberType,
 member.Name)
      Next member
      
      Console.WriteLine("---")
      
      ' Let's take a look at the constructor we created.
      Dim myDTctor As ConstructorInfo = myDynamicType.GetConstructor(aPtypes)
      Console.WriteLine("Constructor: {0};", myDTctor.ToString())
      
      Console.WriteLine("---")
      
      ' Now, we get to use our dynamically-created class by invoking
 the constructor. 
      aPoint = myDTctor.Invoke(aPargs)
      Console.WriteLine("aPoint is type {0}.", aPoint.GetType())
      
      
      ' Finally, let's reflect on the instance of our new type - aPoint
 - and
      ' make sure everything proceeded according to plan.
      Console.WriteLine("aPoint.x = {0}", myDynamicType.InvokeMember("GetX",
 BindingFlags.InvokeMethod, Nothing, aPoint, New
 Object() {}))
      Console.WriteLine("aPoint.y = {0}", myDynamicType.InvokeMember("GetY",
 BindingFlags.InvokeMethod, Nothing, aPoint, New
 Object() {}))
      Console.WriteLine("aPoint.z = {0}", myDynamicType.InvokeMember("GetZ",
 BindingFlags.InvokeMethod, Nothing, aPoint, New
 Object() {}))
   End Sub 'Main
End Class 'TestCtorBuilder



' +++ OUTPUT +++
' Some information about my new Type 'Point':
' Assembly: 'MyDynamicAssembly, Version=0.0.0.0'
' Attributes: 'AutoLayout, AnsiClass, NotPublic, Public'
' Module: 'PointModule'
' Members: 
' -- Field x;
' -- Field y;
' -- Field z;
' -- Method GetHashCode;
' -- Method Equals;
' -- Method ToString;
' -- Method GetType;
' -- Constructor .ctor;
' ---
' Constructor: Void .ctor(Int32, Int32, Int32);
' ---
' aPoint is type Point.
' aPoint.x = 4
' aPoint.y = 5
' aPoint.z = 6

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

class TestCtorBuilder {
 
      public static Type DynamicPointTypeGen()
 {
      
       Type pointType = null;
       Type[] ctorParams = new Type[] {typeof(int)
,
                        typeof(int),
                        typeof(int)};
     
       AppDomain myDomain = Thread.GetDomain();
       AssemblyName myAsmName = new AssemblyName();
       myAsmName.Name = "MyDynamicAssembly";
    
       AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(
                      myAsmName, 
                      AssemblyBuilderAccess.RunAndSave);

          ModuleBuilder pointModule = myAsmBuilder.DefineDynamicModule("PointModule"
,
                                    "Point.dll");

       TypeBuilder pointTypeBld = pointModule.DefineType("Point",
                                      TypeAttributes.Public);

       FieldBuilder xField = pointTypeBld.DefineField("x", typeof(int)
,
                                                          FieldAttributes.Public);
       FieldBuilder yField = pointTypeBld.DefineField("y", typeof(int),
 
                                                          FieldAttributes.Public);
       FieldBuilder zField = pointTypeBld.DefineField("z", typeof(int)
,
                                                          FieldAttributes.Public);


           Type objType = Type.GetType("System.Object"); 
           ConstructorInfo objCtor = objType.GetConstructor(new
 Type[0]);

       ConstructorBuilder pointCtor = pointTypeBld.DefineConstructor(
                      MethodAttributes.Public,
                      CallingConventions.Standard,
                      ctorParams);
       ILGenerator ctorIL = pointCtor.GetILGenerator();

       // NOTE: ldarg.0 holds the "this" reference - ldarg.1,
 ldarg.2, and ldarg.3
       // hold the actual passed parameters. ldarg.0 is used by instance
 methods
       // to hold a reference to the current calling object instance.
 Static methods
       // do not use arg.0, since they are not instantiated and hence
 no reference
       // is needed to distinguish them. 

           ctorIL.Emit(OpCodes.Ldarg_0);

       // Here, we wish to create an instance of System.Object by invoking
 its
         // constructor, as specified above.

           ctorIL.Emit(OpCodes.Call, objCtor);

       // Now, we'll load the current instance ref in arg 0, along
       // with the value of parameter "x" stored in arg 1,
 into stfld.

           ctorIL.Emit(OpCodes.Ldarg_0);
           ctorIL.Emit(OpCodes.Ldarg_1);
           ctorIL.Emit(OpCodes.Stfld, xField); 

       // Now, we store arg 2 "y" in the current instance
 with stfld.

           ctorIL.Emit(OpCodes.Ldarg_0);
           ctorIL.Emit(OpCodes.Ldarg_2);
           ctorIL.Emit(OpCodes.Stfld, yField); 

       // Last of all, arg 3 "z" gets stored in the current
 instance.

           ctorIL.Emit(OpCodes.Ldarg_0);
           ctorIL.Emit(OpCodes.Ldarg_3);
           ctorIL.Emit(OpCodes.Stfld, zField); 
           
           // Our work complete, we return.

       ctorIL.Emit(OpCodes.Ret); 

       // Now, let's create three very simple methods so we can see
 our fields.

       string[] mthdNames = new string[]
 {"GetX", "GetY", "GetZ"}; 

           foreach (string mthdName in
 mthdNames) {
              MethodBuilder getFieldMthd = pointTypeBld.DefineMethod(
                           mthdName, 
                           MethodAttributes.Public,
                                           typeof(int), 
                                           null);
          ILGenerator mthdIL = getFieldMthd.GetILGenerator();
       
          mthdIL.Emit(OpCodes.Ldarg_0);
            switch (mthdName) {
             case "GetX": mthdIL.Emit(OpCodes.Ldfld,
 xField);
                  break;
             case "GetY": mthdIL.Emit(OpCodes.Ldfld,
 yField);
                  break;
             case "GetZ": mthdIL.Emit(OpCodes.Ldfld,
 zField);
                  break;

          }
          mthdIL.Emit(OpCodes.Ret);

           }
       // Finally, we create the type.

        pointType = pointTypeBld.CreateType();

       // Let's save it, just for posterity.
       
       myAsmBuilder.Save("Point.dll");
    
       return pointType;

     }

    public static void Main()
 {
    
       Type myDynamicType = null;
           object aPoint = null;
       Type[] aPtypes = new Type[] {typeof(int),
 typeof(int), typeof(int)};
           object[] aPargs = new object[] {4, 5, 6};
    
       // Call the  method to build our dynamic class.

       myDynamicType = DynamicPointTypeGen();

       Console.WriteLine("Some information about my new Type
 '{0}':",
                  myDynamicType.FullName);
       Console.WriteLine("Assembly: '{0}'", myDynamicType.Assembly);
       Console.WriteLine("Attributes: '{0}'", myDynamicType.Attributes);
       Console.WriteLine("Module: '{0}'", myDynamicType.Module);
       Console.WriteLine("Members: "); 
       foreach (MemberInfo member in myDynamicType.GetMembers())
 {
        Console.WriteLine("-- {0} {1};", member.MemberType, member.Name);
       }

           Console.WriteLine("---");

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

       ConstructorInfo myDTctor = myDynamicType.GetConstructor(aPtypes);
           Console.WriteLine("Constructor: {0};", myDTctor.ToString());

           Console.WriteLine("---");
      
           // Now, we get to use our dynamically-created class by invoking
 the constructor. 

       aPoint = myDTctor.Invoke(aPargs);
           Console.WriteLine("aPoint is type {0}.", aPoint.GetType());
              

       // Finally, let's reflect on the instance of our new type - aPoint
 - and
       // make sure everything proceeded according to plan.

       Console.WriteLine("aPoint.x = {0}",
                 myDynamicType.InvokeMember("GetX",
                                BindingFlags.InvokeMethod,
                            null,
                            aPoint,
                            new object[0]));
       Console.WriteLine("aPoint.y = {0}",
                 myDynamicType.InvokeMember("GetY",
                                BindingFlags.InvokeMethod,
                            null,
                            aPoint,
                            new object[0]));
       Console.WriteLine("aPoint.z = {0}",
                 myDynamicType.InvokeMember("GetZ",
                                BindingFlags.InvokeMethod,
                            null,
                            aPoint,
                            new object[0]));

        

       // +++ OUTPUT +++
       // Some information about my new Type 'Point':
       // Assembly: 'MyDynamicAssembly, Version=0.0.0.0'
       // Attributes: 'AutoLayout, AnsiClass, NotPublic, Public'
       // Module: 'PointModule'
       // Members: 
       // -- Field x;
       // -- Field y;
       // -- Field z;
           // -- Method GetHashCode;
           // -- Method Equals;
           // -- Method ToString;
           // -- Method GetType;
           // -- Constructor .ctor;
       // ---
       // Constructor: Void .ctor(Int32, Int32, Int32);
       // ---
       // aPoint is type Point.
       // aPoint.x = 4
       // aPoint.y = 5
       // aPoint.z = 6
        
    }
    
}

using namespace System;
using namespace System::Threading;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
Type^ DynamicPointTypeGen()
{
   Type^ pointType = nullptr;
   array<Type^>^temp0 = {int::typeid,int::typeid
,int::typeid};
   array<Type^>^ctorParams = temp0;
   AppDomain^ myDomain = Thread::GetDomain();
   AssemblyName^ myAsmName = gcnew AssemblyName;
   myAsmName->Name = "MyDynamicAssembly";
   AssemblyBuilder^ myAsmBuilder = myDomain->DefineDynamicAssembly( myAsmName,
 AssemblyBuilderAccess::RunAndSave );
   ModuleBuilder^ pointModule = myAsmBuilder->DefineDynamicModule( "PointModule",
 "Point.dll" );
   TypeBuilder^ pointTypeBld = pointModule->DefineType( "Point", TypeAttributes::Public
 );
   FieldBuilder^ xField = pointTypeBld->DefineField( "x", int::typeid,
 FieldAttributes::Public );
   FieldBuilder^ yField = pointTypeBld->DefineField( "y", int::typeid,
 FieldAttributes::Public );
   FieldBuilder^ zField = pointTypeBld->DefineField( "z", int::typeid,
 FieldAttributes::Public );
   Type^ objType = Type::GetType( "System.Object" );
   ConstructorInfo^ objCtor = objType->GetConstructor( gcnew array<Type^>(0)
 );
   ConstructorBuilder^ pointCtor = pointTypeBld->DefineConstructor( MethodAttributes::Public,
 CallingConventions::Standard, ctorParams );
   ILGenerator^ ctorIL = pointCtor->GetILGenerator();
   
   // NOTE: ldarg.0 holds the "this" reference - ldarg.1,
 ldarg.2, and ldarg.3
   // hold the actual passed parameters. ldarg.0 is used by instance
 methods
   // to hold a reference to the current calling bject instance. Static
 methods
   // do not use arg.0, since they are not instantiated and hence no
 reference
   // is needed to distinguish them.
   ctorIL->Emit( OpCodes::Ldarg_0 );
   
   // Here, we wish to create an instance of System::Object by invoking
 its
   // constructor, as specified above.
   ctorIL->Emit( OpCodes::Call, objCtor );
   
   // Now, we'll load the current instance in arg 0, along
   // with the value of parameter "x" stored in arg 1, into
 stfld.
   ctorIL->Emit( OpCodes::Ldarg_0 );
   ctorIL->Emit( OpCodes::Ldarg_1 );
   ctorIL->Emit( OpCodes::Stfld, xField );
   
   // Now, we store arg 2 "y" in the current instance with
 stfld.
   ctorIL->Emit( OpCodes::Ldarg_0 );
   ctorIL->Emit( OpCodes::Ldarg_2 );
   ctorIL->Emit( OpCodes::Stfld, yField );
   
   // Last of all, arg 3 "z" gets stored in the current instance.
   ctorIL->Emit( OpCodes::Ldarg_0 );
   ctorIL->Emit( OpCodes::Ldarg_3 );
   ctorIL->Emit( OpCodes::Stfld, zField );
   
   // Our work complete, we return.
   ctorIL->Emit( OpCodes::Ret );
   
   // Now, let's create three very simple methods so we can see our
 fields.
   array<String^>^temp1 = {"GetX","GetY","GetZ"};
   array<String^>^mthdNames = temp1;
   System::Collections::IEnumerator^ myEnum = mthdNames->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      String^ mthdName = safe_cast<String^>(myEnum->Current);
      MethodBuilder^ getFieldMthd = pointTypeBld->DefineMethod( mthdName, MethodAttributes::Public,
 int::typeid, nullptr );
      ILGenerator^ mthdIL = getFieldMthd->GetILGenerator();
      mthdIL->Emit( OpCodes::Ldarg_0 );
      if ( mthdName->Equals( "GetX" ) )
            mthdIL->Emit( OpCodes::Ldfld, xField );
      else
      if ( mthdName->Equals( "GetY" ) )
            mthdIL->Emit( OpCodes::Ldfld, yField );
      else
      if ( mthdName->Equals( "GetZ" ) )
            mthdIL->Emit( OpCodes::Ldfld, zField );



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

   pointType = pointTypeBld->CreateType();
   
   // Let's save it, just for posterity.
   myAsmBuilder->Save( "Point.dll" );
   return pointType;
}

int main()
{
   Type^ myDynamicType = nullptr;
   Object^ aPoint = nullptr;
   array<Type^>^temp2 = {int::typeid,int::typeid
,int::typeid};
   array<Type^>^aPtypes = temp2;
   array<Object^>^temp3 = {4,5,6};
   array<Object^>^aPargs = temp3;
   
   // Call the  method to build our dynamic class.
   myDynamicType = DynamicPointTypeGen();
   Console::WriteLine( "Some information about my new Type
 '{0}':", myDynamicType->FullName );
   Console::WriteLine( "Assembly: '{0}'", myDynamicType->Assembly );
   Console::WriteLine( "Attributes: '{0}'", myDynamicType->Attributes
 );
   Console::WriteLine( "Module: '{0}'", myDynamicType->Module );
   Console::WriteLine( "Members: " );
   System::Collections::IEnumerator^ myEnum = myDynamicType->GetMembers()->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      MemberInfo^ member = safe_cast<MemberInfo^>(myEnum->Current);
      Console::WriteLine( "-- {0} {1};", member->MemberType, member->Name
 );
   }

   Console::WriteLine( "---" );
   
   // Let's take a look at the constructor we created.
   ConstructorInfo^ myDTctor = myDynamicType->GetConstructor( aPtypes );
   Console::WriteLine( "Constructor: {0};", myDTctor );
   Console::WriteLine( "---" );
   
   // Now, we get to use our dynamically-created class by invoking the
 constructor.
   aPoint = myDTctor->Invoke( aPargs );
   Console::WriteLine( "aPoint is type {0}.", aPoint->GetType() );
   
   // Finally, let's reflect on the instance of our new type - aPoint
 - and
   // make sure everything proceeded according to plan.
   Console::WriteLine( "aPoint.x = {0}", myDynamicType->InvokeMember(
 "GetX", BindingFlags::InvokeMethod, nullptr, aPoint, gcnew array<Object^>(0)
 ) );
   Console::WriteLine( "aPoint.y = {0}", myDynamicType->InvokeMember(
 "GetY", BindingFlags::InvokeMethod, nullptr, aPoint, gcnew array<Object^>(0)
 ) );
   Console::WriteLine( "aPoint.z = {0}", myDynamicType->InvokeMember(
 "GetZ", BindingFlags::InvokeMethod, nullptr, aPoint, gcnew array<Object^>(0)
 ) );
   
   // +++ OUTPUT +++
   // Some information about my new Type 'Point':
   // Assembly: 'MyDynamicAssembly, Version=0.0.0.0'
   // Attributes: 'AutoLayout, AnsiClass, NotPublic, Public'
   // Module: 'PointModule'
   // Members:
   // -- Field x;
   // -- Field y;
   // -- Field z;
   // -- Method GetHashCode;
   // -- Method Equals;
   // -- Method ToString;
   // -- Method GetType;
   // -- Constructor .ctor;
   // ---
   // Constructor: Void .ctor(Int32, Int32, Int32);
   // ---
   // aPoint is type Point.
   // aPoint.x = 4
   // aPoint.y = 5
   // aPoint.z = 6
}

継承階層継承階層
System.Object
   System.Reflection.MemberInfo
     System.Reflection.MethodBase
       System.Reflection.ConstructorInfo
        System.Reflection.Emit.ConstructorBuilder
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ConstructorBuilder メンバ
System.Reflection.Emit 名前空間

ConstructorBuilder プロパティ


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

  名前 説明
パブリック プロパティ Attributes オーバーライドされます。 このコンストラクタ属性取得します
パブリック プロパティ CallingConvention オーバーライドされます宣言型ジェネリックかどうかに応じて異なる CallingConventions 値を取得します
パブリック プロパティ ContainsGenericParameters  ジェネリック メソッドに、割り当てられていないジェネリック型パラメータ含まれているかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ DeclaringType オーバーライドされます。 このメンバ宣言する型の Type オブジェクトへの参照取得します
パブリック プロパティ InitLocals このコンストラクタローカル変数ゼロ初期化するかどうか取得または設定します
パブリック プロパティ IsAbstract  メソッド抽象メソッドかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsAssembly  同じアセンブリ異なクラスからこのメソッド呼び出すことができるかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsConstructor  メソッドコンストラクタかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsFamily  このメソッドへのアクセスクラスメンバ派生クラスメンバ制限されているかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsFamilyAndAssembly  同じアセンブリ派生クラスからこのメソッド呼び出すことができるかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsFamilyOrAssembly  すべての派生クラスおよび同じアセンブリすべてのクラスからこのメソッド呼び出すことができるかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsFinal  このメソッドfinal かどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsGenericMethod  メソッドジェネリック メソッドかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsGenericMethodDefinition  メソッドジェネリック メソッドの定義かどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsHideBySig  派生クラスで、正確に同じシグネチャを持つ同じ種類メンバだけが隠しメンバになるかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsPrivate  このメンバプライベートかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsPublic  パブリック メソッドかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsSpecialName  特別な名前のメソッドかどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsStatic  メソッドstatic かどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ IsVirtual  メソッドvirtual かどうかを示す値を取得します。 ( MethodBase から継承されます。)
パブリック プロパティ MemberType  このメンバコンストラクタであることを示す MemberTypes 値を取得します。 ( ConstructorInfo から継承されます。)
パブリック プロパティ MetadataToken  メタデータ要素識別する値を取得します。 ( MemberInfo から継承されます。)
パブリック プロパティ MethodHandle オーバーライドされますメソッド内部ハンドル取得します。基になるメタデータ ハンドルアクセスするには、このハンドル使用します
パブリック プロパティ Module オーバーライドされます。 このコンストラクタ定義されている動的モジュール取得します
パブリック プロパティ Name オーバーライドされます。 このコンストラクタの名前を取得します
パブリック プロパティ ReflectedType オーバーライドされます。 このオブジェクト取得するために使用した Type オブジェクトへの参照保持します
パブリック プロパティ ReturnType null 参照 (Visual Basic では Nothing) を取得します
パブリック プロパティ Signature フィールドシグネチャ文字列書式取得します
参照参照

関連項目

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

ConstructorBuilder メソッド


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

  名前 説明
パブリック メソッド AddDeclarativeSecurity このコンストラクタ宣言セキュリティ追加します
パブリック メソッド DefineParameter このコンストラクタパラメータ定義します
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 ( Object から継承されます。)
パブリック メソッド GetCurrentMethod  現在実行中のメソッドを表す MethodBase オブジェクト返します。 ( MethodBase から継承されます。)
パブリック メソッド GetCustomAttributes オーバーロードされますオーバーライドされます。 このコンストラクタに対して定義されているカスタム属性返します
パブリック メソッド GetGenericArguments  ジェネリック メソッド型引数、またはジェネリック メソッドの定義の型パラメータを表す Type オブジェクト配列返します。 ( MethodBase から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 ( Object から継承されます。)
パブリック メソッド GetILGenerator オーバーロードされます。 このコンストラクタメソッド本体出力するために使用できる ILGenerator を取得します
パブリック メソッド GetMethodBody  派生クラスオーバーライドされると、現在のメソッドMSIL ストリームローカル変数、および例外アクセスできるようにする MethodBody オブジェクト取得します。 ( MethodBase から継承されます。)
パブリック メソッド GetMethodFromHandle  オーバーロードされます指定したハンドル使用してメソッド情報取得します。 ( MethodBase から継承されます。)
パブリック メソッド GetMethodImplementationFlags オーバーライドされます。 このコンストラクタメソッド実装フラグ返します
パブリック メソッド GetModule このコンストラクタ格納されているモジュールへの参照返します
パブリック メソッド GetParameters オーバーライドされます。 このコンストラクタパラメータ返します
パブリック メソッド GetToken このコンストラクタトークンを表す MethodToken を返します
パブリック メソッド GetType  現在のインスタンスType取得します。 ( Object から継承されます。)
パブリック メソッド Invoke オーバーロードされます。 このインスタンス動的にリフレクションするコンストラクタ呼び出します。
パブリック メソッド IsDefined オーバーライドされます指定されカスタム属性の型が定義されているかどうか確認します
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 ( Object から継承されます。)
パブリック メソッド SetCustomAttribute オーバーロードされますカスタム属性設定します
パブリック メソッド SetImplementationFlags このコンストラクタメソッド実装フラグ設定します
パブリック メソッド SetSymCustomAttribute シンボリック情報関連付けられたこのコンストラクタカスタム属性設定します
パブリック メソッド ToString オーバーライドされます。 この ConstructorBuilder インスタンスString として返します
明示的インターフェイスの実装明示的インターフェイス実装
  名前 説明
インターフェイスの明示的な実装 System.Runtime.InteropServices._ConstructorBuilder.GetIDsOfNames 一連の名前を対応する一連のディスパッチ識別子割り当てます
インターフェイスの明示的な実装 System.Runtime.InteropServices._ConstructorBuilder.GetTypeInfo オブジェクト型情報取得しますその後は、インターフェイス型情報取得使用できます
インターフェイスの明示的な実装 System.Runtime.InteropServices._ConstructorBuilder.GetTypeInfoCount オブジェクト提供する型情報インターフェイスの数 (0 または 1) を取得します
インターフェイスの明示的な実装 System.Runtime.InteropServices._ConstructorBuilder.Invoke オブジェクト公開するプロパティおよびメソッドアクセスできるようにします。
参照参照

関連項目

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

ConstructorBuilder メンバ

動的クラスコンストラクタを定義および表現します

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


パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ Attributes オーバーライドされます。 このコンストラクタ属性取得します
パブリック プロパティ CallingConvention オーバーライドされます宣言型ジェネリックかどうかに応じて異なる CallingConventions 値を取得します
パブリック プロパティ ContainsGenericParameters  ジェネリック メソッドに、割り当てられていないジェネリック型パラメータ含まれているかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ DeclaringType オーバーライドされます。 このメンバ宣言する型の Type オブジェクトへの参照取得します
パブリック プロパティ InitLocals このコンストラクタローカル変数ゼロ初期化するかどうか取得または設定します
パブリック プロパティ IsAbstract  メソッド抽象メソッドかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsAssembly  同じアセンブリ異なクラスからこのメソッド呼び出すことができるかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsConstructor  メソッドコンストラクタかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsFamily  このメソッドへのアクセスクラスメンバ派生クラスメンバ制限されているかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsFamilyAndAssembly  同じアセンブリ派生クラスからこのメソッド呼び出すことができるかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsFamilyOrAssembly  すべての派生クラスおよび同じアセンブリすべてのクラスからこのメソッド呼び出すことができるかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsFinal  このメソッドfinal かどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsGenericMethod  メソッドジェネリック メソッドかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsGenericMethodDefinition  メソッドジェネリック メソッドの定義かどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsHideBySig  派生クラスで、正確に同じシグネチャを持つ同じ種類メンバだけが隠しメンバになるかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsPrivate  このメンバプライベートかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsPublic  パブリック メソッドかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsSpecialName  特別な名前のメソッドかどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsStatic  メソッドstatic かどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ IsVirtual  メソッドvirtual かどうかを示す値を取得します。(MethodBase から継承されます。)
パブリック プロパティ MemberType  このメンバコンストラクタであることを示す MemberTypes 値を取得します。(ConstructorInfo から継承されます。)
パブリック プロパティ MetadataToken  メタデータ要素識別する値を取得します。(MemberInfo から継承されます。)
パブリック プロパティ MethodHandle オーバーライドされますメソッド内部ハンドル取得します。基になるメタデータ ハンドルアクセスするには、このハンドル使用します
パブリック プロパティ Module オーバーライドされます。 このコンストラクタ定義されている動的モジュール取得します
パブリック プロパティ Name オーバーライドされます。 このコンストラクタの名前を取得します
パブリック プロパティ ReflectedType オーバーライドされます。 このオブジェクト取得するために使用した Type オブジェクトへの参照保持します
パブリック プロパティ ReturnType null 参照 (Visual Basic では Nothing) を取得します
パブリック プロパティ Signature フィールドシグネチャ文字列書式取得します
パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド AddDeclarativeSecurity このコンストラクタ宣言セキュリティ追加します
パブリック メソッド DefineParameter このコンストラクタパラメータ定義します
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 (Object から継承されます。)
パブリック メソッド GetCurrentMethod  現在実行中のメソッドを表す MethodBase オブジェクト返します。 (MethodBase から継承されます。)
パブリック メソッド GetCustomAttributes オーバーロードされますオーバーライドされます。 このコンストラクタに対して定義されているカスタム属性返します
パブリック メソッド GetGenericArguments  ジェネリック メソッド型引数、またはジェネリック メソッドの定義の型パラメータを表す Type オブジェクト配列返します。 (MethodBase から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 (Object から継承されます。)
パブリック メソッド GetILGenerator オーバーロードされます。 このコンストラクタメソッド本体出力するために使用できる ILGenerator を取得します
パブリック メソッド GetMethodBody  派生クラスオーバーライドされると、現在のメソッドMSIL ストリームローカル変数、および例外アクセスできるようにする MethodBody オブジェクト取得します。 (MethodBase から継承されます。)
パブリック メソッド GetMethodFromHandle  オーバーロードされます指定したハンドル使用してメソッド情報取得します。 (MethodBase から継承されます。)
パブリック メソッド GetMethodImplementationFlags オーバーライドされます。 このコンストラクタメソッド実装フラグ返します
パブリック メソッド GetModule このコンストラクタ格納されているモジュールへの参照返します
パブリック メソッド GetParameters オーバーライドされます。 このコンストラクタパラメータ返します
パブリック メソッド GetToken このコンストラクタトークンを表す MethodToken を返します
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド Invoke オーバーロードされます。 このインスタンス動的にリフレクションするコンストラクタ呼び出します。
パブリック メソッド IsDefined オーバーライドされます指定されカスタム属性の型が定義されているかどうか確認します
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド SetCustomAttribute オーバーロードされますカスタム属性設定します
パブリック メソッド SetImplementationFlags このコンストラクタメソッド実装フラグ設定します
パブリック メソッド SetSymCustomAttribute シンボリック情報関連付けられたこのコンストラクタカスタム属性設定します
パブリック メソッド ToString オーバーライドされます。 この ConstructorBuilder インスタンスString として返します
明示的インターフェイスの実装明示的インターフェイス実装
  名前 説明
インターフェイスの明示的な実装 System.Runtime.InteropServices._ConstructorBuilder.GetIDsOfNames 一連の名前を対応する一連のディスパッチ識別子割り当てます
インターフェイスの明示的な実装 System.Runtime.InteropServices._ConstructorBuilder.GetTypeInfo オブジェクト型情報取得しますその後は、インターフェイス型情報取得使用できます
インターフェイスの明示的な実装 System.Runtime.InteropServices._ConstructorBuilder.GetTypeInfoCount オブジェクト提供する型情報インターフェイスの数 (0 または 1) を取得します
インターフェイスの明示的な実装 System.Runtime.InteropServices._ConstructorBuilder.Invoke オブジェクト公開するプロパティおよびメソッドアクセスできるようにします。
参照参照

関連項目

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

_ConstructorBuilder インターフェイス

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

System.Reflection.Emit.ConstructorBuilder クラスアンマネージ コード公開します

 

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

<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)> _
<GuidAttribute("ED3E4384-D7E2-3FA7-8FFD-8940D330519A")>
 _
<CLSCompliantAttribute(False)> _
<ComVisibleAttribute(True)> _
Public Interface _ConstructorBuilder
Dim instance As _ConstructorBuilder
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] 
[GuidAttribute("ED3E4384-D7E2-3FA7-8FFD-8940D330519A")] 
[CLSCompliantAttribute(false)] 
[ComVisibleAttribute(true)] 
public interface _ConstructorBuilder
[InterfaceTypeAttribute(ComInterfaceType::InterfaceIsIUnknown)] 
[GuidAttribute(L"ED3E4384-D7E2-3FA7-8FFD-8940D330519A")] 
[CLSCompliantAttribute(false)] 
[ComVisibleAttribute(true)] 
public interface class _ConstructorBuilder
/** @attribute InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown) */ 
/** @attribute GuidAttribute("ED3E4384-D7E2-3FA7-8FFD-8940D330519A") */
 
/** @attribute CLSCompliantAttribute(false) */ 
/** @attribute ComVisibleAttribute(true) */ 
public interface _ConstructorBuilder
InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown) 
GuidAttribute("ED3E4384-D7E2-3FA7-8FFD-8940D330519A") 
CLSCompliantAttribute(false) 
ComVisibleAttribute(true) 
public interface _ConstructorBuilder
解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
_ConstructorBuilder メンバ
System.Runtime.InteropServices 名前空間

_ConstructorBuilder メソッド


_ConstructorBuilder メンバ




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

辞書ショートカット

すべての辞書の索引

「_ConstructorBuilder」の関連用語

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

   

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



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

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

©2024 GRAS Group, Inc.RSS