ModuleBuilder.DefineGlobalMethod Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.
CreateGlobalFunctions() is eerder gebeld.
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.
CreateGlobalFunctions() is eerder gebeld.
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.