ModuleBuilder.DefineGlobalMethod Methode

Definitie

Definieert een globale methode.

Overloads

Name Description
DefineGlobalMethod(String, MethodAttributes, Type, Type[])

Definieert een globale methode met de opgegeven naam, kenmerken, retourtype en parametertypen.

DefineGlobalMethod(String, MethodAttributes, CallingConventions, Type, Type[])

Definieert een globale methode met de opgegeven naam, kenmerken, aanroepende conventie, retourtype en parametertypen.

DefineGlobalMethod(String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][])

Definieert een globale methode met de opgegeven naam, kenmerken, aanroepende conventie, retourtype, aangepaste modifiers voor het retourtype, parametertypen en aangepaste modifiers voor de parametertypen.

DefineGlobalMethod(String, MethodAttributes, Type, Type[])

Definieert een globale methode met de opgegeven naam, kenmerken, retourtype en parametertypen.

public:
 System::Reflection::Emit::MethodBuilder ^ DefineGlobalMethod(System::String ^ name, System::Reflection::MethodAttributes attributes, Type ^ returnType, cli::array <Type ^> ^ parameterTypes);
public System.Reflection.Emit.MethodBuilder DefineGlobalMethod(string name, System.Reflection.MethodAttributes attributes, Type returnType, Type[] parameterTypes);
member this.DefineGlobalMethod : string * System.Reflection.MethodAttributes * Type * Type[] -> System.Reflection.Emit.MethodBuilder
Public Function DefineGlobalMethod (name As String, attributes As MethodAttributes, returnType As Type, parameterTypes As Type()) As MethodBuilder

Parameters

name
String

De naam van de methode. name kan geen ingesloten null-waarden bevatten.

attributes
MethodAttributes

De kenmerken van de methode. attributes moet bevatten Static.

returnType
Type

Het retourtype van de methode.

parameterTypes
Type[]

De typen parameters van de methode.

Retouren

De gedefinieerde globale methode.

Uitzonderingen

De methode is niet statisch. Dat wil gezegd, attributes omvat Staticniet.

– of –

De lengte van name 0 is

– of –

Een element in de Type matrix is null.

name is null.

Voorbeelden

Het volgende voorbeeld illustreert het gebruik van het maken van DefineGlobalMethod een typeonafhankelijke methode die is gekoppeld aan de huidige ModuleBuilder. Na het bouwen van de globale methode moet CreateGlobalFunctions deze worden aangeroepen om deze te voltooien.

AppDomain currentDomain;
AssemblyName myAssemblyName;
MethodBuilder myMethodBuilder=null;
ILGenerator myILGenerator;

// Get the current application domain for the current thread.
currentDomain = AppDomain.CurrentDomain;
myAssemblyName = new AssemblyName();
myAssemblyName.Name = "TempAssembly";

// Define a dynamic assembly in the 'currentDomain'.
myAssemblyBuilder =
   currentDomain.DefineDynamicAssembly
               (myAssemblyName, AssemblyBuilderAccess.RunAndSave);
// Define a dynamic module in "TempAssembly" assembly.
myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("TempModule");

// Define a global method in the 'TempModule' module.
myMethodBuilder = myModuleBuilder.DefineGlobalMethod
     ("MyMethod1",MethodAttributes.Static|MethodAttributes.Public,
           null,null);
myILGenerator = myMethodBuilder.GetILGenerator();
myILGenerator.EmitWriteLine("Hello World from global method.");
myILGenerator.Emit(OpCodes.Ret);
// Fix up the 'TempModule' module .
myModuleBuilder.CreateGlobalFunctions();
Dim currentDomain As AppDomain
Dim myAssemblyName As AssemblyName
Dim myMethodBuilder As MethodBuilder = Nothing
Dim myILGenerator As ILGenerator

' Get the current application domain for the current thread.
currentDomain = AppDomain.CurrentDomain
myAssemblyName = New AssemblyName()
myAssemblyName.Name = "TempAssembly"

' Define a dynamic assembly in the 'currentDomain'.
myAssemblyBuilder = currentDomain.DefineDynamicAssembly(myAssemblyName, _
                                                   AssemblyBuilderAccess.RunAndSave)
' Define a dynamic module in "TempAssembly" assembly.
myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("TempModule")

' Define a global method in the 'TempModule' module.
myMethodBuilder = myModuleBuilder.DefineGlobalMethod("MyMethod1", MethodAttributes.Static _
                                          Or MethodAttributes.Public, Nothing, Nothing)
myILGenerator = myMethodBuilder.GetILGenerator()
myILGenerator.EmitWriteLine("Hello World from global method.")
myILGenerator.Emit(OpCodes.Ret)
' Fix up the 'TempModule' module .
myModuleBuilder.CreateGlobalFunctions()

Opmerkingen

De globale methode die door deze methode wordt gedefinieerd, kan pas worden gebruikt als u aanroept CreateGlobalFunctions.

Van toepassing op

DefineGlobalMethod(String, MethodAttributes, CallingConventions, Type, Type[])

Definieert een globale methode met de opgegeven naam, kenmerken, aanroepende conventie, retourtype en parametertypen.

public:
 System::Reflection::Emit::MethodBuilder ^ DefineGlobalMethod(System::String ^ name, System::Reflection::MethodAttributes attributes, System::Reflection::CallingConventions callingConvention, Type ^ returnType, cli::array <Type ^> ^ parameterTypes);
public System.Reflection.Emit.MethodBuilder DefineGlobalMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, Type returnType, Type[] parameterTypes);
member this.DefineGlobalMethod : string * System.Reflection.MethodAttributes * System.Reflection.CallingConventions * Type * Type[] -> System.Reflection.Emit.MethodBuilder
Public Function DefineGlobalMethod (name As String, attributes As MethodAttributes, callingConvention As CallingConventions, returnType As Type, parameterTypes As Type()) As MethodBuilder

Parameters

name
String

De naam van de methode. name kan geen ingesloten null-waarden bevatten.

attributes
MethodAttributes

De kenmerken van de methode. attributes moet bevatten Static.

callingConvention
CallingConventions

De aanroepconventie voor de methode.

returnType
Type

Het retourtype van de methode.

parameterTypes
Type[]

De typen parameters van de methode.

Retouren

De gedefinieerde globale methode.

Uitzonderingen

De methode is niet statisch. Dat wil gezegd, attributes omvat Staticniet.

– of –

Een element in de Type matrix is null.

name is null.

Voorbeelden

Het volgende codevoorbeeld illustreert het gebruik van het maken van DefineGlobalMethod een typeonafhankelijke methode die is gekoppeld aan de huidige ModuleBuilder. Na het bouwen van de globale methode moet CreateGlobalFunctions deze worden aangeroepen om deze te voltooien.

AppDomain currentDomain;
AssemblyName myAssemblyName;
MethodBuilder myMethodBuilder=null;
ILGenerator myILGenerator;

// Get the current application domain for the current thread.
currentDomain = AppDomain.CurrentDomain;
myAssemblyName = new AssemblyName();
myAssemblyName.Name = "TempAssembly";

// Define a dynamic assembly in the 'currentDomain'.
myAssemblyBuilder =
   currentDomain.DefineDynamicAssembly
               (myAssemblyName, AssemblyBuilderAccess.RunAndSave);
// Define a dynamic module in "TempAssembly" assembly.
myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("TempModule");

// Define a global method in the 'TempModule' module.
myMethodBuilder = myModuleBuilder.DefineGlobalMethod
     ("MyMethod1",MethodAttributes.Static|MethodAttributes.Public,
           null,null);
myILGenerator = myMethodBuilder.GetILGenerator();
myILGenerator.EmitWriteLine("Hello World from global method.");
myILGenerator.Emit(OpCodes.Ret);
// Fix up the 'TempModule' module .
myModuleBuilder.CreateGlobalFunctions();
Dim currentDomain As AppDomain
Dim myAssemblyName As AssemblyName
Dim myMethodBuilder As MethodBuilder = Nothing
Dim myILGenerator As ILGenerator

' Get the current application domain for the current thread.
currentDomain = AppDomain.CurrentDomain
myAssemblyName = New AssemblyName()
myAssemblyName.Name = "TempAssembly"

' Define a dynamic assembly in the 'currentDomain'.
myAssemblyBuilder = currentDomain.DefineDynamicAssembly(myAssemblyName, _
                                                   AssemblyBuilderAccess.RunAndSave)
' Define a dynamic module in "TempAssembly" assembly.
myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("TempModule")

' Define a global method in the 'TempModule' module.
myMethodBuilder = myModuleBuilder.DefineGlobalMethod("MyMethod1", MethodAttributes.Static _
                                          Or MethodAttributes.Public, Nothing, Nothing)
myILGenerator = myMethodBuilder.GetILGenerator()
myILGenerator.EmitWriteLine("Hello World from global method.")
myILGenerator.Emit(OpCodes.Ret)
' Fix up the 'TempModule' module .
myModuleBuilder.CreateGlobalFunctions()

Opmerkingen

U kunt de globale methode die deze methode definieert pas gebruiken als u aanroept CreateGlobalFunctions.

Van toepassing op

DefineGlobalMethod(String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][])

Definieert een globale methode met de opgegeven naam, kenmerken, aanroepende conventie, retourtype, aangepaste modifiers voor het retourtype, parametertypen en aangepaste modifiers voor de parametertypen.

public:
 System::Reflection::Emit::MethodBuilder ^ DefineGlobalMethod(System::String ^ name, System::Reflection::MethodAttributes attributes, System::Reflection::CallingConventions callingConvention, Type ^ returnType, cli::array <Type ^> ^ requiredReturnTypeCustomModifiers, cli::array <Type ^> ^ optionalReturnTypeCustomModifiers, cli::array <Type ^> ^ parameterTypes, cli::array <cli::array <Type ^> ^> ^ requiredParameterTypeCustomModifiers, cli::array <cli::array <Type ^> ^> ^ optionalParameterTypeCustomModifiers);
public System.Reflection.Emit.MethodBuilder DefineGlobalMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, Type returnType, Type[] requiredReturnTypeCustomModifiers, Type[] optionalReturnTypeCustomModifiers, Type[] parameterTypes, Type[][] requiredParameterTypeCustomModifiers, Type[][] optionalParameterTypeCustomModifiers);
member this.DefineGlobalMethod : string * System.Reflection.MethodAttributes * System.Reflection.CallingConventions * Type * Type[] * Type[] * Type[] * Type[][] * Type[][] -> System.Reflection.Emit.MethodBuilder
Public Function DefineGlobalMethod (name As String, attributes As MethodAttributes, callingConvention As CallingConventions, returnType As Type, requiredReturnTypeCustomModifiers As Type(), optionalReturnTypeCustomModifiers As Type(), parameterTypes As Type(), requiredParameterTypeCustomModifiers As Type()(), optionalParameterTypeCustomModifiers As Type()()) As MethodBuilder

Parameters

name
String

De naam van de methode. name kan geen ingesloten null-tekens bevatten.

attributes
MethodAttributes

De kenmerken van de methode. attributes moet bevatten Static.

callingConvention
CallingConventions

De aanroepconventie voor de methode.

returnType
Type

Het retourtype van de methode.

requiredReturnTypeCustomModifiers
Type[]

Een matrix van typen die de vereiste aangepaste modifiers voor het retourtype vertegenwoordigen, zoals IsConst of IsBoxed. Als het retourtype geen vereiste aangepaste aanpassingstypen heeft, geeft u op null.

optionalReturnTypeCustomModifiers
Type[]

Een matrix van typen die de optionele aangepaste modifiers voor het retourtype vertegenwoordigen, zoals IsConst of IsBoxed. Als het retourtype geen optionele aangepaste aanpassingstypen heeft, geeft u op null.

parameterTypes
Type[]

De typen parameters van de methode.

requiredParameterTypeCustomModifiers
Type[][]

Een matrix van matrices van typen. Elke matrix van typen vertegenwoordigt de vereiste aangepaste modifiers voor de bijbehorende parameter van de globale methode. Als een bepaald argument geen vereiste aangepaste wijzigingsifiers heeft, geeft u null in plaats van een matrix van typen op. Als de globale methode geen argumenten heeft of als geen van de argumenten aangepaste aanpassingsmethoden heeft, geeft u null in plaats van een matrix met matrices op.

optionalParameterTypeCustomModifiers
Type[][]

Een matrix van matrices van typen. Elke matrix van typen vertegenwoordigt de optionele aangepaste modifiers voor de bijbehorende parameter. Als een bepaald argument geen optionele aangepaste modifiers heeft, geeft u null dit op in plaats van een matrix van typen. Als de globale methode geen argumenten heeft of als geen van de argumenten optionele aangepaste aanpassingsmethoden heeft, geeft u null op in plaats van een matrix met matrices.

Retouren

De gedefinieerde globale methode.

Uitzonderingen

De methode is niet statisch. Dat wil gezegd, attributes omvat Staticniet.

– of –

Een element in de Type matrix is null.

name is null.

De CreateGlobalFunctions() methode is eerder aangeroepen.

Opmerkingen

Deze overbelasting wordt geboden voor ontwerpers van beheerde compilers.

U kunt de globale methode die deze methode definieert pas gebruiken als u aanroept CreateGlobalFunctions.

Van toepassing op