MethodBuilder.GetModule Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает ссылку на модуль, содержащий этот метод.
public:
System::Reflection::Module ^ GetModule();
public System.Reflection.Module GetModule ();
member this.GetModule : unit -> System.Reflection.Module
Public Function GetModule () As Module
Возвращаемое значение
Возвращает ссылку на модуль, содержащий этот метод.
Примеры
В приведенном ниже примере кода показано использование GetModule
метода для получения сведений о динамически создаваемом модуле.
ModuleBuilder^ myModBuilder = myAsmBuilder->DefineDynamicModule( "MathFunctions" );
TypeBuilder^ myTypeBuilder = myModBuilder->DefineType( "MyMathFunctions", TypeAttributes::Public );
array<Type^>^temp0 = {int::typeid,int::typeid};
MethodBuilder^ myMthdBuilder = myTypeBuilder->DefineMethod( "Adder", MethodAttributes::Public, int::typeid, temp0 );
// Create body via ILGenerator here ...
Type^ myNewType = myTypeBuilder->CreateType();
Module^ myModule = myMthdBuilder->GetModule();
array<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 );
System::Collections::IEnumerator^ myEnum = myModTypes->GetEnumerator();
while ( myEnum->MoveNext() )
{
Type^ myModType = safe_cast<Type^>(myEnum->Current);
Console::WriteLine( "------- has type {0}", myModType->FullName );
}
}
};
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);
}
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
Применяется к
GitHub сайтында бізбен бірлесіп жұмыс істеу
Бұл мазмұнның көзін GitHub сайтында табуға болады. Онда сонымен бірге мәселелер мен өзгертулерді енгізу сұрауларын жасауға және қарап шығуға болады. Қосымша ақпарат алу үшін қатысушы нұсқаулығын қараңыз.