DynamicMethod Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert und stellt eine dynamische Methode dar, die kompiliert, ausgeführt und verworfen werden kann. Verworfene Methoden sind für die Garbage Collection verfügbar.
public ref class DynamicMethod sealed : System::Reflection::MethodInfo
public sealed class DynamicMethod : System.Reflection.MethodInfo
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DynamicMethod : System.Reflection.MethodInfo
type DynamicMethod = class
inherit MethodInfo
[<System.Runtime.InteropServices.ComVisible(true)>]
type DynamicMethod = class
inherit MethodInfo
Public NotInheritable Class DynamicMethod
Inherits MethodInfo
- Vererbung
- Attribute
Beispiele
Im folgenden Codebeispiel wird eine dynamische Methode erstellt, die zwei Parameter verwendet. Im Beispiel wird ein einfacher Funktionstext ausgegeben, der den ersten Parameter in der Konsole druckt, und im Beispiel wird der zweite Parameter als Rückgabewert der Methode verwendet. Im Beispiel wird die Methode abgeschlossen, indem sie einen Delegaten erstellt, den Delegaten mit verschiedenen Parametern aufruft und schließlich die dynamische Methode mithilfe der Invoke Methode aufruft.
using System;
using System.Reflection;
using System.Reflection.Emit;
using System.Globalization;
public class Test
{
// Declare a delegate type that can be used to execute the completed
// dynamic method.
private delegate int HelloDelegate(string msg, int ret);
public static void Main()
{
// Create an array that specifies the types of the parameters
// of the dynamic method. This dynamic method has a String
// parameter and an Integer parameter.
Type[] helloArgs = {typeof(string), typeof(int)};
// Create a dynamic method with the name "Hello", a return type
// of Integer, and two parameters whose types are specified by
// the array helloArgs. Create the method in the module that
// defines the String class.
DynamicMethod hello = new DynamicMethod("Hello",
typeof(int),
helloArgs,
typeof(string).Module);
// Create an array that specifies the parameter types of the
// overload of Console.WriteLine to be used in Hello.
Type[] writeStringArgs = {typeof(string)};
// Get the overload of Console.WriteLine that has one
// String parameter.
MethodInfo writeString = typeof(Console).GetMethod("WriteLine",
writeStringArgs);
// Get an ILGenerator and emit a body for the dynamic method,
// using a stream size larger than the IL that will be
// emitted.
ILGenerator il = hello.GetILGenerator(256);
// Load the first argument, which is a string, onto the stack.
il.Emit(OpCodes.Ldarg_0);
// Call the overload of Console.WriteLine that prints a string.
il.EmitCall(OpCodes.Call, writeString, null);
// The Hello method returns the value of the second argument;
// to do this, load the onto the stack and return.
il.Emit(OpCodes.Ldarg_1);
il.Emit(OpCodes.Ret);
// Add parameter information to the dynamic method. (This is not
// necessary, but can be useful for debugging.) For each parameter,
// identified by position, supply the parameter attributes and a
// parameter name.
hello.DefineParameter(1, ParameterAttributes.In, "message");
hello.DefineParameter(2, ParameterAttributes.In, "valueToReturn");
// Create a delegate that represents the dynamic method. This
// action completes the method. Any further attempts to
// change the method are ignored.
HelloDelegate hi =
(HelloDelegate) hello.CreateDelegate(typeof(HelloDelegate));
// Use the delegate to execute the dynamic method.
Console.WriteLine("\r\nUse the delegate to execute the dynamic method:");
int retval = hi("\r\nHello, World!", 42);
Console.WriteLine("Invoking delegate hi(\"Hello, World!\", 42) returned: " + retval);
// Execute it again, with different arguments.
retval = hi("\r\nHi, Mom!", 5280);
Console.WriteLine("Invoking delegate hi(\"Hi, Mom!\", 5280) returned: " + retval);
Console.WriteLine("\r\nUse the Invoke method to execute the dynamic method:");
// Create an array of arguments to use with the Invoke method.
object[] invokeArgs = {"\r\nHello, World!", 42};
// Invoke the dynamic method using the arguments. This is much
// slower than using the delegate, because you must create an
// array to contain the arguments, and value-type arguments
// must be boxed.
object objRet = hello.Invoke(null, BindingFlags.ExactBinding, null, invokeArgs, new CultureInfo("en-us"));
Console.WriteLine("hello.Invoke returned: " + objRet);
Console.WriteLine("\r\n ----- Display information about the dynamic method -----");
// Display MethodAttributes for the dynamic method, set when
// the dynamic method was created.
Console.WriteLine("\r\nMethod Attributes: {0}", hello.Attributes);
// Display the calling convention of the dynamic method, set when the
// dynamic method was created.
Console.WriteLine("\r\nCalling convention: {0}", hello.CallingConvention);
// Display the declaring type, which is always null for dynamic
// methods.
if (hello.DeclaringType == null)
{
Console.WriteLine("\r\nDeclaringType is always null for dynamic methods.");
}
else
{
Console.WriteLine("DeclaringType: {0}", hello.DeclaringType);
}
// Display the default value for InitLocals.
if (hello.InitLocals)
{
Console.Write("\r\nThis method contains verifiable code.");
}
else
{
Console.Write("\r\nThis method contains unverifiable code.");
}
Console.WriteLine(" (InitLocals = {0})", hello.InitLocals);
// Display the module specified when the dynamic method was created.
Console.WriteLine("\r\nModule: {0}", hello.Module);
// Display the name specified when the dynamic method was created.
// Note that the name can be blank.
Console.WriteLine("\r\nName: {0}", hello.Name);
// For dynamic methods, the reflected type is always null.
if (hello.ReflectedType == null)
{
Console.WriteLine("\r\nReflectedType is null.");
}
else
{
Console.WriteLine("\r\nReflectedType: {0}", hello.ReflectedType);
}
if (hello.ReturnParameter == null)
{
Console.WriteLine("\r\nMethod has no return parameter.");
}
else
{
Console.WriteLine("\r\nReturn parameter: {0}", hello.ReturnParameter);
}
// If the method has no return type, ReturnType is System.Void.
Console.WriteLine("\r\nReturn type: {0}", hello.ReturnType);
// ReturnTypeCustomAttributes returns an ICustomeAttributeProvider
// that can be used to enumerate the custom attributes of the
// return value. At present, there is no way to set such custom
// attributes, so the list is empty.
if (hello.ReturnType == typeof(void))
{
Console.WriteLine("The method has no return type.");
}
else
{
ICustomAttributeProvider caProvider = hello.ReturnTypeCustomAttributes;
object[] returnAttributes = caProvider.GetCustomAttributes(true);
if (returnAttributes.Length == 0)
{
Console.WriteLine("\r\nThe return type has no custom attributes.");
}
else
{
Console.WriteLine("\r\nThe return type has the following custom attributes:");
foreach( object attr in returnAttributes )
{
Console.WriteLine("\t{0}", attr.ToString());
}
}
}
Console.WriteLine("\r\nToString: {0}", hello.ToString());
// Display parameter information.
ParameterInfo[] parameters = hello.GetParameters();
Console.WriteLine("\r\nParameters: name, type, ParameterAttributes");
foreach( ParameterInfo p in parameters )
{
Console.WriteLine("\t{0}, {1}, {2}",
p.Name, p.ParameterType, p.Attributes);
}
}
}
/* This code example produces the following output:
Use the delegate to execute the dynamic method:
Hello, World!
Invoking delegate hi("Hello, World!", 42) returned: 42
Hi, Mom!
Invoking delegate hi("Hi, Mom!", 5280) returned: 5280
Use the Invoke method to execute the dynamic method:
Hello, World!
hello.Invoke returned: 42
----- Display information about the dynamic method -----
Method Attributes: PrivateScope, Public, Static
Calling convention: Standard
DeclaringType is always null for dynamic methods.
This method contains verifiable code. (InitLocals = True)
Module: CommonLanguageRuntimeLibrary
Name: Hello
ReflectedType is null.
Method has no return parameter.
Return type: System.Int32
The return type has no custom attributes.
ToString: Int32 Hello(System.String, Int32)
Parameters: name, type, ParameterAttributes
message, System.String, In
valueToReturn, System.Int32, In
*/
Imports System.Reflection
Imports System.Reflection.Emit
Imports System.Globalization
Public Class Test
' Declare a delegate type that can be used to execute the completed
' dynamic method.
Private Delegate Function HelloDelegate(ByVal msg As String, _
ByVal ret As Integer) As Integer
Public Shared Sub Main()
' Create an array that specifies the types of the parameters
' of the dynamic method. This dynamic method has a String
' parameter and an Integer parameter.
Dim helloArgs() As Type = {GetType(String), GetType(Integer)}
' Create a dynamic method with the name "Hello", a return type
' of Integer, and two parameters whose types are specified by
' the array helloArgs. Create the method in the module that
' defines the String class.
Dim hello As New DynamicMethod("Hello", _
GetType(Integer), _
helloArgs, _
GetType(String).Module)
' Create an array that specifies the parameter types of the
' overload of Console.WriteLine to be used in Hello.
Dim writeStringArgs() As Type = {GetType(String)}
' Get the overload of Console.WriteLine that has one
' String parameter.
Dim writeString As MethodInfo = GetType(Console). _
GetMethod("WriteLine", writeStringArgs)
' Get an ILGenerator and emit a body for the dynamic method,
' using a stream size larger than the IL that will be
' emitted.
Dim il As ILGenerator = hello.GetILGenerator(256)
' Load the first argument, which is a string, onto the stack.
il.Emit(OpCodes.Ldarg_0)
' Call the overload of Console.WriteLine that prints a string.
il.EmitCall(OpCodes.Call, writeString, Nothing)
' The Hello method returns the value of the second argument;
' to do this, load the onto the stack and return.
il.Emit(OpCodes.Ldarg_1)
il.Emit(OpCodes.Ret)
' Add parameter information to the dynamic method. (This is not
' necessary, but can be useful for debugging.) For each parameter,
' identified by position, supply the parameter attributes and a
' parameter name.
hello.DefineParameter(1, ParameterAttributes.In, "message")
hello.DefineParameter(2, ParameterAttributes.In, "valueToReturn")
' Create a delegate that represents the dynamic method. This
' action completes the method. Any further attempts to
' change the method are ignored.
Dim hi As HelloDelegate = _
CType(hello.CreateDelegate(GetType(HelloDelegate)), HelloDelegate)
' Use the delegate to execute the dynamic method.
Console.WriteLine(vbCrLf & "Use the delegate to execute the dynamic method:")
Dim retval As Integer = hi(vbCrLf & "Hello, World!", 42)
Console.WriteLine("Invoking delegate hi(""Hello, World!"", 42) returned: " _
& retval & ".")
' Execute it again, with different arguments.
retval = hi(vbCrLf & "Hi, Mom!", 5280)
Console.WriteLine("Invoking delegate hi(""Hi, Mom!"", 5280) returned: " _
& retval & ".")
Console.WriteLine(vbCrLf & "Use the Invoke method to execute the dynamic method:")
' Create an array of arguments to use with the Invoke method.
Dim invokeArgs() As Object = {vbCrLf & "Hello, World!", 42}
' Invoke the dynamic method using the arguments. This is much
' slower than using the delegate, because you must create an
' array to contain the arguments, and value-type arguments
' must be boxed.
Dim objRet As Object = hello.Invoke(Nothing, _
BindingFlags.ExactBinding, Nothing, invokeArgs, _
New CultureInfo("en-us"))
Console.WriteLine("hello.Invoke returned: {0}", objRet)
Console.WriteLine(vbCrLf & _
" ----- Display information about the dynamic method -----")
' Display MethodAttributes for the dynamic method, set when
' the dynamic method was created.
Console.WriteLine(vbCrLf & "Method Attributes: {0}", _
hello.Attributes)
' Display the calling convention of the dynamic method, set when the
' dynamic method was created.
Console.WriteLine(vbCrLf & "Calling convention: {0}", _
hello.CallingConvention)
' Display the declaring type, which is always Nothing for dynamic
' methods.
If hello.DeclaringType Is Nothing Then
Console.WriteLine(vbCrLf & "DeclaringType is always Nothing for dynamic methods.")
Else
Console.WriteLine("DeclaringType: {0}", hello.DeclaringType)
End If
' Display the default value for InitLocals.
If hello.InitLocals Then
Console.Write(vbCrLf & "This method contains verifiable code.")
Else
Console.Write(vbCrLf & "This method contains unverifiable code.")
End If
Console.WriteLine(" (InitLocals = {0})", hello.InitLocals)
' Display the module specified when the dynamic method was created.
Console.WriteLine(vbCrLf & "Module: {0}", hello.Module)
' Display the name specified when the dynamic method was created.
' Note that the name can be blank.
Console.WriteLine(vbCrLf & "Name: {0}", hello.Name)
' For dynamic methods, the reflected type is always Nothing.
If hello.ReflectedType Is Nothing Then
Console.WriteLine(vbCrLf & "ReflectedType is Nothing.")
Else
Console.WriteLine(vbCrLf & "ReflectedType: {0}", _
hello.ReflectedType)
End If
If hello.ReturnParameter Is Nothing Then
Console.WriteLine(vbCrLf & "Method has no return parameter.")
Else
Console.WriteLine(vbCrLf & "Return parameter: {0}", _
hello.ReturnParameter)
End If
' If the method has no return type, ReturnType is System.Void.
Console.WriteLine(vbCrLf & "Return type: {0}", hello.ReturnType)
' ReturnTypeCustomAttributes returns an ICustomeAttributeProvider
' that can be used to enumerate the custom attributes of the
' return value. At present, there is no way to set such custom
' attributes, so the list is empty.
If hello.ReturnType Is GetType(System.Void) Then
Console.WriteLine("The method has no return type.")
Else
Dim caProvider As ICustomAttributeProvider = _
hello.ReturnTypeCustomAttributes
Dim returnAttributes() As Object = _
caProvider.GetCustomAttributes(True)
If returnAttributes.Length = 0 Then
Console.WriteLine(vbCrLf _
& "The return type has no custom attributes.")
Else
Console.WriteLine(vbCrLf _
& "The return type has the following custom attributes:")
For Each attr As Object In returnAttributes
Console.WriteLine(vbTab & attr.ToString())
Next attr
End If
End If
Console.WriteLine(vbCrLf & "ToString: " & hello.ToString())
' Display parameter information.
Dim parameters() As ParameterInfo = hello.GetParameters()
Console.WriteLine(vbCrLf & "Parameters: name, type, ParameterAttributes")
For Each p As ParameterInfo In parameters
Console.WriteLine(vbTab & "{0}, {1}, {2}", _
p.Name, p.ParameterType, p.Attributes)
Next p
End Sub
End Class
' This code example produces the following output:
'
'Use the delegate to execute the dynamic method:
'
'Hello, World!
'Invoking delegate hi("Hello, World!", 42) returned: 42.
'
'Hi, Mom!
'Invoking delegate hi("Hi, Mom!", 5280) returned: 5280.
'
'Use the Invoke method to execute the dynamic method:
'
'Hello, World!
'hello.Invoke returned: 42
'
' ----- Display information about the dynamic method -----
'
'Method Attributes: PrivateScope, Public, Static
'
'Calling convention: Standard
'
'DeclaringType is always Nothing for dynamic methods.
'
'This method contains verifiable code. (InitLocals = True)
'
'Module: CommonLanguageRuntimeLibrary
'
'Name: Hello
'
'ReflectedType is Nothing.
'
'Method has no return parameter.
'
'Return type: System.Int32
'
'The return type has no custom attributes.
'
'ToString: Int32 Hello(System.String, Int32)
'
'Parameters: name, type, ParameterAttributes
' message, System.String, In
' valueToReturn, System.Int32, In
Hinweise
Weitere Informationen zu dieser API finden Sie in den ergänzenden API-Anmerkungen zu DynamicMethod.
Konstruktoren
| Name | Beschreibung |
|---|---|
| DynamicMethod(String, MethodAttributes, CallingConventions, Type, Type[], Module, Boolean) |
Erstellt eine dynamische Methode, die global für ein Modul ist, und gibt den Methodennamen, Attribute, Aufrufkonventionen, Rückgabetyp, Parametertypen, Modul und ob JiT-Sichtbarkeitsprüfungen für Typen und Member übersprungen werden sollen, auf die von der Microsoft Zwischensprache (MSIL) der dynamischen Methode zugegriffen wird. |
| DynamicMethod(String, MethodAttributes, CallingConventions, Type, Type[], Type, Boolean) |
Erstellt eine dynamische Methode, die den Methodennamen, Attribute, Aufrufkonventionen, Rückgabetyp, Parametertypen, den Typ angibt, dem die dynamische Methode logisch zugeordnet ist, und ob jiT-Sichtbarkeitsprüfungen für Typen und Member übersprungen werden sollen, auf die von der Microsoft Zwischensprache (MSIL) der dynamischen Methode zugegriffen wird. |
| DynamicMethod(String, Type, Type[], Boolean) |
Initialisiert eine anonym gehostete dynamische Methode, wobei der Methodenname, der Rückgabetyp, die Parametertypen angegeben werden und ob jiT-Sichtbarkeitsprüfungen für Typen und Member übersprungen werden sollen, auf die von der Microsoft Zwischensprache (MSIL) der dynamischen Methode zugegriffen wird. |
| DynamicMethod(String, Type, Type[], Module, Boolean) |
Erstellt eine dynamische Methode, die für ein Modul global ist, wobei der Methodenname, der Rückgabetyp, parametertypen, das Modul angegeben wird und ob Die Sichtbarkeitsprüfungen für Typen und Member übersprungen werden sollen, auf die von der Microsoft Zwischensprache (MSIL) der dynamischen Methode zugegriffen wird. |
| DynamicMethod(String, Type, Type[], Module) |
Erstellt eine dynamische Methode, die global für ein Modul ist, wobei der Methodenname, der Rückgabetyp, die Parametertypen und das Modul angegeben werden. |
| DynamicMethod(String, Type, Type[], Type, Boolean) |
Erstellt eine dynamische Methode, die den Methodennamen, den Rückgabetyp, Parametertypen, den Typ angibt, dem die dynamische Methode logisch zugeordnet ist und ob jiT-Sichtbarkeitsprüfungen für Typen und Member übersprungen werden sollen, auf die von der Microsoft Zwischensprache (MSIL) der dynamischen Methode zugegriffen wird. |
| DynamicMethod(String, Type, Type[], Type) |
Erstellt eine dynamische Methode, die den Methodennamen, rückgabetyp, Parametertypen und den Typ angibt, dem die dynamische Methode logisch zugeordnet ist. |
| DynamicMethod(String, Type, Type[]) |
Initialisiert eine anonym gehostete dynamische Methode, wobei der Methodenname, der Rückgabetyp und die Parametertypen angegeben werden. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Attributes |
Ruft die Attribute ab, die beim Erstellen der dynamischen Methode angegeben wurden. |
| CallingConvention |
Ruft die beim Erstellen der dynamischen Methode angegebene Aufrufkonvention ab. |
| ContainsGenericParameters |
Ruft einen Wert ab, der angibt, ob eine generische Methode nicht zugewiesene generische Typparameter enthält. (Geerbt von MethodInfo) |
| CustomAttributes |
Ruft eine Auflistung ab, die die benutzerdefinierten Attribute dieses Elements enthält. (Geerbt von MemberInfo) |
| DeclaringType |
Ruft den Typ ab, der die Methode deklariert, die sich immer |
| InitLocals |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die lokalen Variablen in der Methode null initialisiert sind. |
| IsAbstract |
Ruft einen Wert ab, der angibt, ob die Methode abstrakt ist. (Geerbt von MethodBase) |
| IsAssembly |
Ruft einen Wert ab, der angibt, ob die potenzielle Sichtbarkeit dieser Methode oder des Konstruktors beschrieben Assemblywird; d. h. die Methode oder der Konstruktor ist höchstens für andere Typen in derselben Assembly sichtbar und ist für abgeleitete Typen außerhalb der Assembly nicht sichtbar. (Geerbt von MethodBase) |
| IsCollectible |
Ruft einen Wert ab, der angibt, ob dieses MemberInfo Objekt auf eine oder mehrere Assemblys verweist, die in einem Sammelobjekt AssemblyLoadContextgespeichert sind. (Geerbt von MemberInfo) |
| IsConstructedGenericMethod |
Definiert und stellt eine dynamische Methode dar, die kompiliert, ausgeführt und verworfen werden kann. Verworfene Methoden sind für die Garbage Collection verfügbar. (Geerbt von MethodBase) |
| IsConstructor |
Ruft einen Wert ab, der angibt, ob die Methode ein Konstruktor ist. (Geerbt von MethodBase) |
| IsFamily |
Ruft einen Wert ab, der angibt, ob die Sichtbarkeit dieser Methode oder des Konstruktors von Family; d. h. die Methode oder der Konstruktor nur innerhalb ihrer Klasse und abgeleiteten Klassen sichtbar ist. (Geerbt von MethodBase) |
| IsFamilyAndAssembly |
Ruft einen Wert ab, der angibt, ob die Sichtbarkeit dieser Methode oder des Konstruktors beschrieben FamANDAssemwird; d. h. die Methode oder der Konstruktor kann von abgeleiteten Klassen aufgerufen werden, aber nur, wenn sie sich in derselben Assembly befinden. (Geerbt von MethodBase) |
| IsFamilyOrAssembly |
Ruft einen Wert ab, der angibt, ob die potenzielle Sichtbarkeit dieser Methode oder des Konstruktors beschrieben FamORAssemwird; d. h. die Methode oder der Konstruktor kann von abgeleiteten Klassen aufgerufen werden, wo immer sie sich befinden, und von Klassen in derselben Assembly. (Geerbt von MethodBase) |
| IsFinal |
Ruft einen Wert ab, der angibt, ob diese Methode ist |
| IsGenericMethod |
Ruft einen Wert ab, der angibt, ob die aktuelle Methode eine generische Methode ist. (Geerbt von MethodInfo) |
| IsGenericMethodDefinition |
Ruft einen Wert ab, der angibt, ob der aktuelle Wert die Definition einer generischen MethodInfo Methode darstellt. (Geerbt von MethodInfo) |
| IsHideBySig |
Ruft einen Wert ab, der angibt, ob nur ein Element derselben Art mit genau derselben Signatur in der abgeleiteten Klasse ausgeblendet ist. (Geerbt von MethodBase) |
| IsPrivate |
Ruft einen Wert ab, der angibt, ob dieses Element privat ist. (Geerbt von MethodBase) |
| IsPublic |
Ruft einen Wert ab, der angibt, ob es sich um eine öffentliche Methode handelt. (Geerbt von MethodBase) |
| IsSecurityCritical |
Ruft einen Wert ab, der angibt, ob die aktuelle dynamische Methode sicherheitskritisch oder sicherheitssicher kritisch ist und daher kritische Vorgänge ausführen kann. |
| IsSecurityCritical |
Ruft einen Wert ab, der angibt, ob die aktuelle Methode oder der Konstruktor sicherheitskritisch oder sicherheitssicher auf der aktuellen Vertrauensebene ist und daher kritische Vorgänge ausführen kann. (Geerbt von MethodBase) |
| IsSecuritySafeCritical |
Ruft einen Wert ab, der angibt, ob die aktuelle dynamische Methode sicherheitssicher-kritisch auf der aktuellen Vertrauensebene ist. d. h., ob sie kritische Vorgänge ausführen kann und durch transparenten Code darauf zugegriffen werden kann. |
| IsSecuritySafeCritical |
Ruft einen Wert ab, der angibt, ob die aktuelle Methode oder der Konstruktor sicherheitssicher auf der aktuellen Vertrauensebene ist; d. h., ob sie kritische Vorgänge ausführen kann und durch transparenten Code darauf zugegriffen werden kann. (Geerbt von MethodBase) |
| IsSecurityTransparent |
Ruft einen Wert ab, der angibt, ob die aktuelle dynamische Methode auf der aktuellen Vertrauensebene transparent ist und daher keine kritischen Vorgänge ausführen kann. |
| IsSecurityTransparent |
Ruft einen Wert ab, der angibt, ob die aktuelle Methode oder der Konstruktor auf der aktuellen Vertrauensebene transparent ist und daher keine kritischen Vorgänge ausführen kann. (Geerbt von MethodBase) |
| IsSpecialName |
Ruft einen Wert ab, der angibt, ob diese Methode einen speziellen Namen hat. (Geerbt von MethodBase) |
| IsStatic |
Ruft einen Wert ab, der angibt, ob die Methode ist |
| IsVirtual |
Ruft einen Wert ab, der angibt, ob die Methode ist |
| MemberType |
Ruft einen MemberTypes Wert ab, der angibt, dass dieses Element eine Methode ist. (Geerbt von MethodInfo) |
| MetadataToken |
Ruft einen Wert ab, der ein Metadatenelement identifiziert. (Geerbt von MemberInfo) |
| MethodHandle |
Wird für dynamische Methoden nicht unterstützt. |
| MethodImplementationFlags |
Definiert und stellt eine dynamische Methode dar, die kompiliert, ausgeführt und verworfen werden kann. Verworfene Methoden sind für die Garbage Collection verfügbar. |
| MethodImplementationFlags |
Ruft die MethodImplAttributes Flags ab, die die Attribute einer Methodenimplementierung angeben. (Geerbt von MethodBase) |
| Module |
Ruft das Modul ab, dem die dynamische Methode logisch zugeordnet ist. |
| Module |
Ruft das Modul ab, in dem der Typ, der das durch die aktuelle MemberInfo Darstellung dargestellte Element deklariert, definiert ist. (Geerbt von MemberInfo) |
| Name |
Ruft den Namen der dynamischen Methode ab. |
| ReflectedType |
Ruft die Klasse ab, die in Spiegelung zum Abrufen der Methode verwendet wurde. |
| ReturnParameter |
Ruft den Rückgabeparameter der dynamischen Methode ab. |
| ReturnType |
Ruft den Typ des Rückgabewerts für die dynamische Methode ab. |
| ReturnTypeCustomAttributes |
Ruft die benutzerdefinierten Attribute des Rückgabetyps für die dynamische Methode ab. |
| ReturnTypeCustomAttributes |
Ruft die benutzerdefinierten Attribute für den Rückgabetyp ab. (Geerbt von MethodInfo) |
Methoden
| Name | Beschreibung |
|---|---|
| CreateDelegate(Type, Object) |
Schließt die dynamische Methode ab und erstellt einen Delegaten, der zum Ausführen verwendet werden kann, wobei der Delegattyp und ein Objekt angegeben werden, an das der Delegate gebunden ist. |
| CreateDelegate(Type) |
Schließt die dynamische Methode ab und erstellt einen Delegaten, der zum Ausführen verwendet werden kann. |
| CreateDelegate<T>() |
Erstellt einen Delegat vom Typ |
| CreateDelegate<T>(Object) |
Erstellt einen Delegat vom Typ |
| DefineParameter(Int32, ParameterAttributes, String) |
Definiert einen Parameter der dynamischen Methode. |
| Equals(Object) |
Gibt einen Wert zurück, der angibt, ob diese Instanz einem angegebenen Objekt entspricht. (Geerbt von MethodInfo) |
| GetBaseDefinition() |
Gibt die Basisimplementierung für die Methode zurück. |
| GetBaseDefinition() |
Wenn eine abgeleitete Klasse überschrieben wird, wird das MethodInfo Objekt für die Methode für die direkte oder indirekte Basisklasse zurückgegeben, in der die durch diese Instanz dargestellte Methode zuerst deklariert wurde. (Geerbt von MethodInfo) |
| GetCustomAttributes(Boolean) |
Gibt alle benutzerdefinierten Attribute zurück, die für die Methode definiert sind. |
| GetCustomAttributes(Type, Boolean) |
Gibt die benutzerdefinierten Attribute des angegebenen Typs zurück, die auf die Methode angewendet wurden. |
| GetCustomAttributesData() |
Gibt eine Liste von CustomAttributeData Objekten zurück, die Daten zu den Attributen darstellen, die auf das Zielelement angewendet wurden. (Geerbt von MemberInfo) |
| GetDynamicILInfo() |
Gibt ein DynamicILInfo -Objekt zurück, das verwendet werden kann, um einen Methodentext aus Metadatentoken, Bereichen und Microsoft MSIL-Datenströmen (Intermediate Language) zu generieren. |
| GetGenericArguments() |
Gibt ein Array von Type Objekten zurück, die die Typargumente einer generischen Methode oder die Typparameter einer generischen Methodendefinition darstellen. (Geerbt von MethodInfo) |
| GetGenericMethodDefinition() |
Gibt ein MethodInfo Objekt zurück, das eine generische Methodendefinition darstellt, aus der die aktuelle Methode erstellt werden kann. (Geerbt von MethodInfo) |
| GetHashCode() |
Gibt den Hashcode für diesen instance zurück. (Geerbt von MethodInfo) |
| GetILGenerator() |
Gibt einen Microsoft MSIL-Generator (Intermediate Language) für die Methode mit einer Standardmäßigen MSIL-Datenstromgröße von 64 Bytes zurück. |
| GetILGenerator(Int32) |
Gibt einen Microsoft MSIL-Generator (Intermediate Language) für die Methode mit der angegebenen MSIL-Datenstromgröße zurück. |
| GetMethodBody() |
Wenn eine abgeleitete Klasse außer Kraft gesetzt wird, ruft ein MethodBody Objekt ab, das Zugriff auf den MSIL-Datenstrom, lokale Variablen und Ausnahmen für die aktuelle Methode ermöglicht. (Geerbt von MethodBase) |
| GetMethodImplementationFlags() |
Gibt die Implementierungskennzeichnungen für die Methode zurück. |
| GetMethodImplementationFlags() |
Wenn sie in einer abgeleiteten Klasse überschrieben werden, werden die MethodImplAttributes Flags zurückgegeben. (Geerbt von MethodBase) |
| GetParameters() |
Gibt die Parameter der dynamischen Methode zurück. |
| HasSameMetadataDefinitionAs(MemberInfo) |
Definiert und stellt eine dynamische Methode dar, die kompiliert, ausgeführt und verworfen werden kann. Verworfene Methoden sind für die Garbage Collection verfügbar. (Geerbt von MemberInfo) |
| Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) |
Ruft die dynamische Methode mithilfe der angegebenen Parameter unter den Einschränkungen des angegebenen Ordners mit den angegebenen Kulturinformationen auf. |
| IsDefined(Type, Boolean) |
Gibt an, ob der angegebene benutzerdefinierte Attributtyp definiert ist. |
| MakeGenericMethod(Type[]) |
Ersetzt die Elemente eines Arrays von Typen für die Typparameter der aktuellen generischen Methodendefinition und gibt ein MethodInfo Objekt zurück, das die resultierende konstruierte Methode darstellt. (Geerbt von MethodInfo) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt die Signatur der Methode zurück, dargestellt als Zeichenfolge. |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| _MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Geerbt von MemberInfo) |
| _MemberInfo.GetType() |
Ruft ein Type Objekt ab, das die MemberInfo Klasse darstellt. (Geerbt von MemberInfo) |
| _MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können. (Geerbt von MemberInfo) |
| _MemberInfo.GetTypeInfoCount(UInt32) |
Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Geerbt von MemberInfo) |
| _MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Bietet Zugriff auf Eigenschaften und Methoden, die von einem Objekt verfügbar gemacht werden. (Geerbt von MemberInfo) |
| _MethodBase.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Geerbt von MethodBase) |
| _MethodBase.GetType() |
Eine Beschreibung dieses Mitglieds finden Sie unter GetType(). (Geerbt von MethodBase) |
| _MethodBase.GetTypeInfo(UInt32, UInt32, IntPtr) |
Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können. (Geerbt von MethodBase) |
| _MethodBase.GetTypeInfoCount(UInt32) |
Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Geerbt von MethodBase) |
| _MethodBase.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Bietet Zugriff auf Eigenschaften und Methoden, die von einem Objekt verfügbar gemacht werden. (Geerbt von MethodBase) |
| _MethodBase.IsAbstract |
Eine Beschreibung dieses Mitglieds finden Sie unter IsAbstract. (Geerbt von MethodBase) |
| _MethodBase.IsAssembly |
Eine Beschreibung dieses Mitglieds finden Sie unter IsAssembly. (Geerbt von MethodBase) |
| _MethodBase.IsConstructor |
Eine Beschreibung dieses Mitglieds finden Sie unter IsConstructor. (Geerbt von MethodBase) |
| _MethodBase.IsFamily |
Eine Beschreibung dieses Mitglieds finden Sie unter IsFamily. (Geerbt von MethodBase) |
| _MethodBase.IsFamilyAndAssembly |
Eine Beschreibung dieses Mitglieds finden Sie unter IsFamilyAndAssembly. (Geerbt von MethodBase) |
| _MethodBase.IsFamilyOrAssembly |
Eine Beschreibung dieses Mitglieds finden Sie unter IsFamilyOrAssembly. (Geerbt von MethodBase) |
| _MethodBase.IsFinal |
Eine Beschreibung dieses Mitglieds finden Sie unter IsFinal. (Geerbt von MethodBase) |
| _MethodBase.IsHideBySig |
Eine Beschreibung dieses Mitglieds finden Sie unter IsHideBySig. (Geerbt von MethodBase) |
| _MethodBase.IsPrivate |
Eine Beschreibung dieses Mitglieds finden Sie unter IsPrivate. (Geerbt von MethodBase) |
| _MethodBase.IsPublic |
Eine Beschreibung dieses Mitglieds finden Sie unter IsPublic. (Geerbt von MethodBase) |
| _MethodBase.IsSpecialName |
Eine Beschreibung dieses Mitglieds finden Sie unter IsSpecialName. (Geerbt von MethodBase) |
| _MethodBase.IsStatic |
Eine Beschreibung dieses Mitglieds finden Sie unter IsStatic. (Geerbt von MethodBase) |
| _MethodBase.IsVirtual |
Eine Beschreibung dieses Mitglieds finden Sie unter IsVirtual. (Geerbt von MethodBase) |
| _MethodInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Geerbt von MethodInfo) |
| _MethodInfo.GetType() |
Bietet Zugriff auf die GetType() Methode von COM. (Geerbt von MethodInfo) |
| _MethodInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Ruft die Typinformationen für ein Objekt ab, mit denen die Typinformationen für eine Schnittstelle abgerufen werden können. (Geerbt von MethodInfo) |
| _MethodInfo.GetTypeInfoCount(UInt32) |
Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Geerbt von MethodInfo) |
| _MethodInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Bietet Zugriff auf Eigenschaften und Methoden, die von einem Objekt verfügbar gemacht werden. (Geerbt von MethodInfo) |
| ICustomAttributeProvider.GetCustomAttributes(Boolean) |
Gibt ein Array aller benutzerdefinierten Attribute zurück, die für dieses Element definiert sind, ohne benannte Attribute oder ein leeres Array, wenn keine benutzerdefinierten Attribute vorhanden sind. (Geerbt von MemberInfo) |
| ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) |
Gibt ein Array von benutzerdefinierten Attributen zurück, die für dieses Element definiert sind, identifiziert nach Typ oder ein leeres Array, wenn keine benutzerdefinierten Attribute dieses Typs vorhanden sind. (Geerbt von MemberInfo) |
| ICustomAttributeProvider.IsDefined(Type, Boolean) |
Gibt an, ob eine oder mehrere Instanzen dieses |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetBaseDefinition(MethodInfo) |
Definiert und stellt eine dynamische Methode dar, die kompiliert, ausgeführt und verworfen werden kann. Verworfene Methoden sind für die Garbage Collection verfügbar. |
| GetCustomAttribute(MemberInfo, Type, Boolean) |
Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs ab, der auf ein angegebenes Element angewendet wird, und überprüft optional die Vorgänger dieses Elements. |
| GetCustomAttribute(MemberInfo, Type) |
Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs ab, das auf ein angegebenes Element angewendet wird. |
| GetCustomAttribute<T>(MemberInfo, Boolean) |
Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs ab, der auf ein angegebenes Element angewendet wird, und überprüft optional die Vorgänger dieses Elements. |
| GetCustomAttribute<T>(MemberInfo) |
Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs ab, das auf ein angegebenes Element angewendet wird. |
| GetCustomAttributes(MemberInfo, Boolean) |
Ruft eine Auflistung von benutzerdefinierten Attributen ab, die auf ein angegebenes Element angewendet werden, und überprüft optional die Vorgänger dieses Elements. |
| GetCustomAttributes(MemberInfo, Type, Boolean) |
Ruft eine Auflistung von benutzerdefinierten Attributen eines angegebenen Typs ab, die auf ein angegebenes Element angewendet werden, und überprüft optional die Vorgänger dieses Elements. |
| GetCustomAttributes(MemberInfo, Type) |
Ruft eine Auflistung von benutzerdefinierten Attributen eines angegebenen Typs ab, die auf ein angegebenes Element angewendet werden. |
| GetCustomAttributes(MemberInfo) |
Ruft eine Auflistung von benutzerdefinierten Attributen ab, die auf ein angegebenes Element angewendet werden. |
| GetCustomAttributes<T>(MemberInfo, Boolean) |
Ruft eine Auflistung von benutzerdefinierten Attributen eines angegebenen Typs ab, die auf ein angegebenes Element angewendet werden, und überprüft optional die Vorgänger dieses Elements. |
| GetCustomAttributes<T>(MemberInfo) |
Ruft eine Auflistung von benutzerdefinierten Attributen eines angegebenen Typs ab, die auf ein angegebenes Element angewendet werden. |
| GetMetadataToken(MemberInfo) |
Ruft ein Metadatentoken für das angegebene Element ab, falls verfügbar. |
| GetRuntimeBaseDefinition(MethodInfo) |
Ruft ein Objekt ab, das die angegebene Methode für die direkte oder indirekte Basisklasse darstellt, in der die Methode zuerst deklariert wurde. |
| HasMetadataToken(MemberInfo) |
Gibt einen Wert zurück, der angibt, ob ein Metadatentoken für das angegebene Element verfügbar ist. |
| IsDefined(MemberInfo, Type, Boolean) |
Gibt an, ob benutzerdefinierte Attribute eines angegebenen Typs auf ein angegebenes Element angewendet werden und optional auf seine Vorgänger angewendet werden. |
| IsDefined(MemberInfo, Type) |
Gibt an, ob benutzerdefinierte Attribute eines angegebenen Typs auf ein angegebenes Element angewendet werden. |