DynamicMethod Klasse

Definition

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 null für dynamische Methoden befindet.

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 final.

(Geerbt von MethodBase)
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 static.

(Geerbt von MethodBase)
IsVirtual

Ruft einen Wert ab, der angibt, ob die Methode ist virtual.

(Geerbt von MethodBase)
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 T aus dieser Methode.

(Geerbt von MethodInfo)
CreateDelegate<T>(Object)

Erstellt einen Delegat vom Typ T mit dem angegebenen Ziel aus dieser Methode.

(Geerbt von MethodInfo)
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 attributeType Elements definiert sind.

(Geerbt von MemberInfo)

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.

Gilt für:

Weitere Informationen