次の方法で共有


ConstructorBuilder.GetModule メソッド

このコンストラクタが格納されているモジュールへの参照を返します。

Public Function GetModule() As Module
[C#]
public Module GetModule();
[C++]
public: Module* GetModule();
[JScript]
public function GetModule() : Module;

戻り値

このコンストラクタが格納されているモジュール。

解説

GetModule の使用方法については、次のコード例を参照してください。

 

      Dim myModBuilder As ModuleBuilder = myAsmBuilder.DefineDynamicModule("MathFunctions")
      
      Dim myTypeBuilder As TypeBuilder = myModBuilder.DefineType("MyMathFunctions", _
                                TypeAttributes.Public)
      
      Dim myMthdBuilder As MethodBuilder = myTypeBuilder.DefineMethod("Adder", _
                    MethodAttributes.Public, GetType(Integer), _
                    New Type() {GetType(Integer), GetType(Integer)})
      
      ' Create body via ILGenerator here ...

      Dim myNewType As Type = myTypeBuilder.CreateType()
      
      Dim myModule As [Module] = myMthdBuilder.GetModule()
      
      Dim myModTypes As Type() = myModule.GetTypes()
      Console.WriteLine("Module: {0}", myModule.Name)
      Console.WriteLine("------- with path {0}", myModule.FullyQualifiedName)
      Console.WriteLine("------- in assembly {0}", myModule.Assembly.FullName)
      Dim myModType As Type
      For Each myModType In  myModTypes
         Console.WriteLine("------- has type {0}", myModType.FullName)
      Next myModType


[C#] 
ModuleBuilder myModBuilder = myAsmBuilder.DefineDynamicModule("MathFunctions");

TypeBuilder myTypeBuilder = myModBuilder.DefineType("MyMathFunctions",
                TypeAttributes.Public);

MethodBuilder myMthdBuilder = myTypeBuilder.DefineMethod("Adder",
                MethodAttributes.Public,
                typeof(int),
                new Type[] { typeof(int),
                         typeof(int) });

// Create body via ILGenerator here ...

Type myNewType = myTypeBuilder.CreateType();

Module myModule = myMthdBuilder.GetModule();

 Type[] myModTypes = myModule.GetTypes();
Console.WriteLine("Module: {0}", myModule.Name);
Console.WriteLine("------- with path {0}", myModule.FullyQualifiedName);
Console.WriteLine("------- in assembly {0}", myModule.Assembly.FullName);
foreach (Type myModType in myModTypes)
    {
    Console.WriteLine("------- has type {0}", myModType.FullName);
}

[C++] 
ModuleBuilder*  myModBuilder = myAsmBuilder->DefineDynamicModule(S"MathFunctions");

TypeBuilder*  myTypeBuilder = myModBuilder->DefineType(S"MyMathFunctions",
   TypeAttributes::Public);

Type* temp0 [] = {__typeof(int), __typeof(int)};
MethodBuilder*  myMthdBuilder = myTypeBuilder->DefineMethod(S"Adder",
   MethodAttributes::Public,
   __typeof(int),
   temp0);

// Create body via ILGenerator here ...

Type*  myNewType = myTypeBuilder->CreateType();
Module*  myModule = myMthdBuilder->GetModule();
Type*  myModTypes[] = myModule->GetTypes();
Console::WriteLine(S"Module: {0}", myModule->Name);
Console::WriteLine(S"------- with path {0}", myModule->FullyQualifiedName);
Console::WriteLine(S"------- in assembly {0}", myModule->Assembly->FullName);
System::Collections::IEnumerator* myEnum = myModTypes->GetEnumerator();
while (myEnum->MoveNext()) {
   Type* myModType = __try_cast<Type*>(myEnum->Current);
   Console::WriteLine(S"------- has type {0}", myModType->FullName);
}

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

ConstructorBuilder クラス | ConstructorBuilder メンバ | System.Reflection.Emit 名前空間