ModuleBuilder.DefineGlobalMethod Methode

Definition

Definiert eine globale Methode.

Überlädt

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

Definiert eine globale Methode mit dem angegebenen Namen, Attributen, Rückgabetyp und Parametertypen.

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

Definiert eine globale Methode mit dem angegebenen Namen, Attributen, aufrufenden Konventionen, Rückgabetyp und Parametertypen.

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

Definiert eine globale Methode mit dem angegebenen Namen, Attributen, aufrufenden Konventionen, Rückgabetyp, benutzerdefinierte Modifizierern für den Rückgabetyp, Parametertypen und benutzerdefinierte Modifizierer für die Parametertypen.

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

Definiert eine globale Methode mit dem angegebenen Namen, Attributen, Rückgabetyp und 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

Parameter

name
String

Der Name der Methode. name Eingebettete Nullwerte können nicht enthalten.

attributes
MethodAttributes

Die Attribute der Methode. attributes muss enthalten Staticsein.

returnType
Type

Der Rückgabetyp der Methode.

parameterTypes
Type[]

Die Typen der Parameter der Methode.

Gibt zurück

Die definierte globale Methode.

Ausnahmen

Die Methode ist nicht statisch. Das heißt, attributes enthält Staticnicht .

-oder-

Die Länge von name 0 ist null.

-oder-

Ein Element im Type Array ist null.

name ist null.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung einer DefineGlobalMethod typunabhängigen Methode, die an die aktuelle ModuleBuilderMethode gebunden ist. Nach dem Erstellen der globalen Methode muss sie aufgerufen werden, CreateGlobalFunctions um sie abzuschließen.

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()

Hinweise

Die globale Methode, die diese Methode definiert, kann erst verwendet werden, wenn Sie aufrufen CreateGlobalFunctions.

Gilt für:

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

Definiert eine globale Methode mit dem angegebenen Namen, Attributen, aufrufenden Konventionen, Rückgabetyp und 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

Parameter

name
String

Der Name der Methode. name Eingebettete Nullwerte können nicht enthalten.

attributes
MethodAttributes

Die Attribute der Methode. attributes muss enthalten Staticsein.

callingConvention
CallingConventions

Die Aufrufkonvention für die Methode.

returnType
Type

Der Rückgabetyp der Methode.

parameterTypes
Type[]

Die Typen der Parameter der Methode.

Gibt zurück

Die definierte globale Methode.

Ausnahmen

Die Methode ist nicht statisch. Das heißt, attributes enthält Staticnicht .

-oder-

Ein Element im Type Array ist null.

name ist null.

Beispiele

Das folgende Codebeispiel veranschaulicht die Verwendung einer DefineGlobalMethod typunabhängigen Methode, die an die aktuelle ModuleBuilderMethode gebunden ist. Nach dem Erstellen der globalen Methode muss sie aufgerufen werden, CreateGlobalFunctions um sie abzuschließen.

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()

Hinweise

Sie können die globale Methode, die diese Methode definiert, nicht verwenden, bis Sie aufrufen CreateGlobalFunctions.

Gilt für:

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

Definiert eine globale Methode mit dem angegebenen Namen, Attributen, aufrufenden Konventionen, Rückgabetyp, benutzerdefinierte Modifizierern für den Rückgabetyp, Parametertypen und benutzerdefinierte Modifizierer für die 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

Parameter

name
String

Der Name der Methode. name Darf keine eingebetteten NULL-Zeichen enthalten.

attributes
MethodAttributes

Die Attribute der Methode. attributes muss enthalten Staticsein.

callingConvention
CallingConventions

Die Aufrufkonvention für die Methode.

returnType
Type

Der Rückgabetyp der Methode.

requiredReturnTypeCustomModifiers
Type[]

Ein Array von Typen, die die erforderlichen benutzerdefinierten Modifizierer für den Rückgabetyp darstellen, z IsConst . B. oder IsBoxed. Wenn der Rückgabetyp keine erforderlichen benutzerdefinierten Modifizierer enthält, geben Sie an null.

optionalReturnTypeCustomModifiers
Type[]

Ein Array von Typen, die die optionalen benutzerdefinierten Modifizierer für den Rückgabetyp darstellen, z IsConst . B. oder IsBoxed. Wenn der Rückgabetyp keine optionalen benutzerdefinierten Modifizierer enthält, geben Sie an null.

parameterTypes
Type[]

Die Typen der Parameter der Methode.

requiredParameterTypeCustomModifiers
Type[][]

Ein Array von Arrays von Typen. Jedes Array von Typen stellt die erforderlichen benutzerdefinierten Modifizierer für den entsprechenden Parameter der globalen Methode dar. Wenn ein bestimmtes Argument keine erforderlichen benutzerdefinierten Modifizierer enthält, geben Sie null anstelle eines Arrays von Typen an. Wenn die globale Methode keine Argumente enthält oder keines der Argumente benutzerdefinierte Modifizierer enthält, geben Sie null anstelle eines Arrays von Arrays an.

optionalParameterTypeCustomModifiers
Type[][]

Ein Array von Arrays von Typen. Jedes Array von Typen stellt die optionalen benutzerdefinierten Modifizierer für den entsprechenden Parameter dar. Wenn ein bestimmtes Argument keine optionalen benutzerdefinierten Modifizierer enthält, geben Sie anstelle null eines Arrays von Typen an. Wenn die globale Methode keine Argumente aufweist oder keines der Argumente optionale benutzerdefinierte Modifizierer aufweist, geben Sie null anstelle eines Arrays von Arrays an.

Gibt zurück

Die definierte globale Methode.

Ausnahmen

Die Methode ist nicht statisch. Das heißt, attributes enthält Staticnicht .

-oder-

Ein Element im Type Array ist null.

name ist null.

Die CreateGlobalFunctions() Methode wurde zuvor aufgerufen.

Hinweise

Diese Überladung wird für Designer von verwalteten Compilern bereitgestellt.

Sie können die globale Methode, die diese Methode definiert, nicht verwenden, bis Sie aufrufen CreateGlobalFunctions.

Gilt für: