MethodBuilder.GetModule Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna uma referência para o módulo que contém este método.
public:
System::Reflection::Module ^ GetModule();
public System.Reflection.Module GetModule ();
member this.GetModule : unit -> System.Reflection.Module
Public Function GetModule () As Module
Retornos
Retorna uma referência para o módulo que contém este método.
Exemplos
O código de exemplo abaixo ilustra o uso do GetModule
método para recuperar informações sobre um módulo gerado dinamicamente.
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
Aplica-se a
Colabore connosco no GitHub
A origem deste conteúdo pode ser encontrada no GitHub, onde também pode criar e rever problemas e pedidos Pull. Para mais informações, consulte o nosso guia do contribuidor.