このコンストラクタが格納されているモジュールへの参照を返します。
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 名前空間