DynamicMethod Klas

Definitie

Definieert en vertegenwoordigt een dynamische methode die kan worden gecompileerd, uitgevoerd en verwijderd. Genegeerde methoden zijn beschikbaar voor garbagecollection.

public ref class DynamicMethod sealed : System::Reflection::MethodInfo
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DynamicMethod : System.Reflection.MethodInfo
public sealed class DynamicMethod : System.Reflection.MethodInfo
[<System.Runtime.InteropServices.ComVisible(true)>]
type DynamicMethod = class
    inherit MethodInfo
type DynamicMethod = class
    inherit MethodInfo
Public NotInheritable Class DynamicMethod
Inherits MethodInfo
Overname
Kenmerken

Voorbeelden

In het volgende codevoorbeeld wordt een dynamische methode gemaakt die twee parameters gebruikt. In het voorbeeld wordt een eenvoudige functietekst verzonden waarmee de eerste parameter naar de console wordt afgedrukt. In het voorbeeld wordt de tweede parameter gebruikt als de retourwaarde van de methode. In het voorbeeld wordt de methode voltooid door een gemachtigde te maken, de gemachtigde aan te roepen met verschillende parameters en ten slotte de dynamische methode aan te roepen met behulp van de Invoke methode.

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

Opmerkingen

Zie Aanvullende API-opmerkingen voor DynamicMethod voor meer informatie over deze API.

Constructors

Name Description
DynamicMethod(String, MethodAttributes, CallingConventions, Type, Type[], Module, Boolean)

Hiermee maakt u een dynamische methode die globaal is voor een module, waarbij u de naam van de methode, kenmerken, aanroepconventie, retourtype, parametertypen, module en of JIT-zichtbaarheidscontroles (Just-In-Time) moeten worden overgeslagen voor typen en leden die worden geopend door de Microsoft tussentaal (MSIL) van de dynamische methode.

DynamicMethod(String, MethodAttributes, CallingConventions, Type, Type[], Type, Boolean)

Hiermee maakt u een dynamische methode, waarbij u de naam van de methode, kenmerken, aanroepconventie, retourtype, parametertypen, het type waarmee de dynamische methode logisch is gekoppeld en of JIT-zichtbaarheidscontroles (Just-In-Time) moeten worden overgeslagen voor typen en leden die worden geopend door de Microsoft tussenliggende taal (MSIL) van de dynamische methode.

DynamicMethod(String, Type, Type[], Boolean)

Initialiseert een anoniem gehoste dynamische methode, waarbij u de naam van de methode opgeeft, type retour, parametertypen en of JIT-zichtbaarheidscontroles (Just-In-Time) moeten worden overgeslagen voor typen en leden die worden geopend door de Microsoft tussentaal (MSIL) van de dynamische methode.

DynamicMethod(String, Type, Type[], Module, Boolean)

Hiermee maakt u een dynamische methode die globaal is voor een module, waarbij u de naam van de methode opgeeft, type, parametertypen, module en of JIT-zichtbaarheidscontroles (Just-In-Time) moeten worden overgeslagen voor typen en leden die worden geopend door de Microsoft tussentaal (MSIL) van de dynamische methode.

DynamicMethod(String, Type, Type[], Module)

Hiermee maakt u een dynamische methode die globaal is voor een module, waarbij u de naam van de methode opgeeft, het retourtype, de parametertypen en de module opgeeft.

DynamicMethod(String, Type, Type[], Type, Boolean)

Hiermee maakt u een dynamische methode, waarbij u de methodenaam opgeeft, retourtype, parametertypen, het type waarmee de dynamische methode logisch is gekoppeld en of JIT-zichtbaarheidscontroles (Just-In-Time) moeten worden overgeslagen voor typen en leden die worden geopend door de Microsoft tussenliggende taal (MSIL) van de dynamische methode.

DynamicMethod(String, Type, Type[], Type)

Hiermee maakt u een dynamische methode, geeft u de naam van de methode op, retourtype, parametertypen en het type waarmee de dynamische methode logisch is gekoppeld.

DynamicMethod(String, Type, Type[])

Initialiseert een anoniem gehoste dynamische methode, waarbij de naam van de methode, het retourtype en de parametertypen worden opgegeven.

Eigenschappen

Name Description
Attributes

Hiermee haalt u de kenmerken op die zijn opgegeven bij het maken van de dynamische methode.

CallingConvention

Hiermee haalt u de aanroepconventie op die is opgegeven bij het maken van de dynamische methode.

ContainsGenericParameters

Hiermee wordt een waarde opgehaald die aangeeft of een algemene methode niet-toegewezen algemene typeparameters bevat.

(Overgenomen van MethodInfo)
CustomAttributes

Hiermee haalt u een verzameling op die de aangepaste kenmerken van dit lid bevat.

(Overgenomen van MemberInfo)
DeclaringType

Hiermee haalt u het type op dat de methode declareert. Dit is altijd null voor dynamische methoden.

InitLocals

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de lokale variabelen in de methode nul zijn geïnitialiseerd.

IsAbstract

Hiermee wordt een waarde opgehaald die aangeeft of de methode abstract is.

(Overgenomen van MethodBase)
IsAssembly

Hiermee wordt een waarde opgehaald die aangeeft of de mogelijke zichtbaarheid van deze methode of constructor wordt beschreven door Assembly; dat wil zeggen dat de methode of constructor maximaal zichtbaar is voor andere typen in dezelfde assembly en niet zichtbaar is voor afgeleide typen buiten de assembly.

(Overgenomen van MethodBase)
IsConstructedGenericMethod

Definieert en vertegenwoordigt een dynamische methode die kan worden gecompileerd, uitgevoerd en verwijderd. Genegeerde methoden zijn beschikbaar voor garbagecollection.

(Overgenomen van MethodBase)
IsConstructor

Hiermee wordt een waarde opgehaald die aangeeft of de methode een constructor is.

(Overgenomen van MethodBase)
IsFamily

Hiermee wordt een waarde opgehaald die aangeeft of de zichtbaarheid van deze methode of constructor wordt beschreven door Family; dat wil zeggen dat de methode of constructor alleen zichtbaar is binnen de klasse en afgeleide klassen.

(Overgenomen van MethodBase)
IsFamilyAndAssembly

Hiermee wordt een waarde opgehaald die aangeeft of de zichtbaarheid van deze methode of constructor wordt beschreven door FamANDAssem; dat wil zeggen, de methode of constructor kan worden aangeroepen door afgeleide klassen, maar alleen als deze zich in dezelfde assembly bevinden.

(Overgenomen van MethodBase)
IsFamilyOrAssembly

Hiermee wordt een waarde opgehaald die aangeeft of de mogelijke zichtbaarheid van deze methode of constructor wordt beschreven door FamORAssem; dat wil zeggen, de methode of constructor kan worden aangeroepen door afgeleide klassen waar ze zich ook bevinden en door klassen in dezelfde assembly.

(Overgenomen van MethodBase)
IsFinal

Hiermee wordt een waarde opgehaald die aangeeft of deze methode is final.

(Overgenomen van MethodBase)
IsGenericMethod

Hiermee wordt een waarde opgehaald die aangeeft of de huidige methode een algemene methode is.

(Overgenomen van MethodInfo)
IsGenericMethodDefinition

Hiermee wordt een waarde opgehaald die aangeeft of de huidige MethodInfo de definitie van een algemene methode vertegenwoordigt.

(Overgenomen van MethodInfo)
IsHideBySig

Hiermee wordt een waarde opgehaald die aangeeft of alleen een lid van hetzelfde type met exact dezelfde handtekening is verborgen in de afgeleide klasse.

(Overgenomen van MethodBase)
IsPrivate

Hiermee wordt een waarde opgehaald die aangeeft of dit lid privé is.

(Overgenomen van MethodBase)
IsPublic

Hiermee wordt een waarde opgehaald die aangeeft of dit een openbare methode is.

(Overgenomen van MethodBase)
IsSecurityCritical

Hiermee wordt een waarde opgehaald die aangeeft of de huidige dynamische methode beveiligingskritiek of veilig is en daarom kritieke bewerkingen kan uitvoeren.

IsSecurityCritical

Hiermee wordt een waarde opgehaald die aangeeft of de huidige methode of constructor beveiligingskritiek of veilig is op het huidige vertrouwensniveau en daarom kritieke bewerkingen kan uitvoeren.

(Overgenomen van MethodBase)
IsSecuritySafeCritical

Hiermee wordt een waarde opgehaald die aangeeft of de huidige dynamische methode beveiligingsveilig is op het huidige vertrouwensniveau; dat wil gezegd, of het kritieke bewerkingen kan uitvoeren en toegankelijk is via transparante code.

IsSecuritySafeCritical

Hiermee wordt een waarde opgehaald die aangeeft of de huidige methode of constructor beveiligingsveilig is op het huidige vertrouwensniveau; dat wil gezegd, of het kritieke bewerkingen kan uitvoeren en toegankelijk is via transparante code.

(Overgenomen van MethodBase)
IsSecurityTransparent

Hiermee wordt een waarde opgehaald die aangeeft of de huidige dynamische methode transparant is op het huidige vertrouwensniveau en daarom geen kritieke bewerkingen kan uitvoeren.

IsSecurityTransparent

Hiermee wordt een waarde opgehaald die aangeeft of de huidige methode of constructor transparant is op het huidige vertrouwensniveau en daarom geen kritieke bewerkingen kan uitvoeren.

(Overgenomen van MethodBase)
IsSpecialName

Hiermee wordt een waarde opgehaald die aangeeft of deze methode een speciale naam heeft.

(Overgenomen van MethodBase)
IsStatic

Hiermee wordt een waarde opgehaald die aangeeft of de methode is static.

(Overgenomen van MethodBase)
IsVirtual

Hiermee wordt een waarde opgehaald die aangeeft of de methode is virtual.

(Overgenomen van MethodBase)
MemberType

Hiermee wordt een MemberTypes waarde opgehaald die aangeeft dat dit lid een methode is.

(Overgenomen van MethodInfo)
MetadataToken

Hiermee haalt u een waarde op waarmee een metagegevenselement wordt geïdentificeerd.

(Overgenomen van MemberInfo)
MethodHandle

Niet ondersteund voor dynamische methoden.

MethodImplementationFlags

Hiermee haalt u de MethodImplAttributes vlaggen op die de kenmerken van een methode-implementatie opgeven.

(Overgenomen van MethodBase)
Module

Hiermee haalt u de module op waarmee de dynamische methode logisch is gekoppeld.

Module

Hiermee haalt u de module op waarin het type dat het lid declareert dat wordt vertegenwoordigd door de huidige MemberInfo , is gedefinieerd.

(Overgenomen van MemberInfo)
Name

Hiermee haalt u de naam van de dynamische methode op.

ReflectedType

Haalt de klasse op die in reflectie is gebruikt om de methode te verkrijgen.

ReturnParameter

Hiermee haalt u de retourparameter van de dynamische methode op.

ReturnType

Hiermee haalt u het type retourwaarde voor de dynamische methode op.

ReturnTypeCustomAttributes

Hiermee haalt u de aangepaste kenmerken van het retourtype voor de dynamische methode op.

Methoden

Name Description
CreateDelegate(Type, Object)

Hiermee voltooit u de dynamische methode en maakt u een gemachtigde die kan worden gebruikt om deze uit te voeren, waarbij u het type gedelegeerde opgeeft en een object waaraan de gemachtigde is gebonden.

CreateDelegate(Type)

Voltooit de dynamische methode en maakt een gemachtigde die kan worden gebruikt om deze uit te voeren.

DefineParameter(Int32, ParameterAttributes, String)

Hiermee definieert u een parameter van de dynamische methode.

Equals(Object)

Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van MethodInfo)
GetBaseDefinition()

Retourneert de basis-implementatie voor de methode.

GetCustomAttributes(Boolean)

Retourneert alle aangepaste kenmerken die zijn gedefinieerd voor de methode.

GetCustomAttributes(Type, Boolean)

Retourneert de aangepaste kenmerken van het opgegeven type dat op de methode is toegepast.

GetCustomAttributesData()

Retourneert een lijst CustomAttributeData met objecten die gegevens vertegenwoordigen over de kenmerken die zijn toegepast op het doellid.

(Overgenomen van MemberInfo)
GetDynamicILInfo()

Retourneert een DynamicILInfo-object dat kan worden gebruikt om een methodetekst te genereren op basis van metagegevenstokens, bereiken en Microsoft tussenliggende taalstromen (MSIL).

GetGenericArguments()

Retourneert een matrix met Type objecten die de typeargumenten van een algemene methode of de typeparameters van een algemene methodedefinitie vertegenwoordigen.

(Overgenomen van MethodInfo)
GetGenericMethodDefinition()

Retourneert een MethodInfo object dat een algemene methodedefinitie vertegenwoordigt waaruit de huidige methode kan worden samengesteld.

(Overgenomen van MethodInfo)
GetHashCode()

Retourneert de hash-code voor dit exemplaar.

(Overgenomen van MethodInfo)
GetILGenerator()

Hiermee wordt een Microsoft MSIL-generator (Intermediate Language) geretourneerd voor de methode met een standaard MSIL-stroomgrootte van 64 bytes.

GetILGenerator(Int32)

Hiermee wordt een Microsoft MSIL-generator (Intermediate Language) geretourneerd voor de methode met de opgegeven MSIL-stroomgrootte.

GetMethodBody()

Wanneer deze wordt overschreven in een afgeleide klasse, haalt u een MethodBody object op dat toegang biedt tot de MSIL-stroom, lokale variabelen en uitzonderingen voor de huidige methode.

(Overgenomen van MethodBase)
GetMethodImplementationFlags()

Retourneert de implementatievlagmen voor de methode.

GetParameters()

Retourneert de parameters van de dynamische methode.

HasSameMetadataDefinitionAs(MemberInfo)

Definieert en vertegenwoordigt een dynamische methode die kan worden gecompileerd, uitgevoerd en verwijderd. Genegeerde methoden zijn beschikbaar voor garbagecollection.

(Overgenomen van MemberInfo)
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)

Roept de dynamische methode aan met behulp van de opgegeven parameters, onder de beperkingen van de opgegeven binder, met de opgegeven cultuurgegevens.

IsDefined(Type, Boolean)

Geeft aan of het opgegeven aangepaste kenmerktype is gedefinieerd.

MakeGenericMethod(Type[])

Vervangt de elementen van een matrix met typen voor de typeparameters van de huidige algemene methodedefinitie en retourneert een MethodInfo object dat de resulterende samengestelde methode vertegenwoordigt.

(Overgenomen van MethodInfo)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert de handtekening van de methode, weergegeven als een tekenreeks.

Expliciete interface-implementaties

Name Description
_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van MemberInfo)
_MemberInfo.GetType()

Hiermee haalt u een Type object op dat de MemberInfo klasse vertegenwoordigt.

(Overgenomen van MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Haalt de typegegevens voor een object op, die vervolgens kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van MemberInfo)
_MethodBase.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van MethodBase)
_MethodBase.GetType()

Zie voor een beschrijving van dit lid GetType().

(Overgenomen van MethodBase)
_MethodBase.GetTypeInfo(UInt32, UInt32, IntPtr)

Haalt de typegegevens voor een object op, die vervolgens kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van MethodBase)
_MethodBase.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van MethodBase)
_MethodBase.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van MethodBase)
_MethodBase.IsAbstract

Zie voor een beschrijving van dit lid IsAbstract.

(Overgenomen van MethodBase)
_MethodBase.IsAssembly

Zie voor een beschrijving van dit lid IsAssembly.

(Overgenomen van MethodBase)
_MethodBase.IsConstructor

Zie voor een beschrijving van dit lid IsConstructor.

(Overgenomen van MethodBase)
_MethodBase.IsFamily

Zie voor een beschrijving van dit lid IsFamily.

(Overgenomen van MethodBase)
_MethodBase.IsFamilyAndAssembly

Zie voor een beschrijving van dit lid IsFamilyAndAssembly.

(Overgenomen van MethodBase)
_MethodBase.IsFamilyOrAssembly

Zie voor een beschrijving van dit lid IsFamilyOrAssembly.

(Overgenomen van MethodBase)
_MethodBase.IsFinal

Zie voor een beschrijving van dit lid IsFinal.

(Overgenomen van MethodBase)
_MethodBase.IsHideBySig

Zie voor een beschrijving van dit lid IsHideBySig.

(Overgenomen van MethodBase)
_MethodBase.IsPrivate

Zie voor een beschrijving van dit lid IsPrivate.

(Overgenomen van MethodBase)
_MethodBase.IsPublic

Zie voor een beschrijving van dit lid IsPublic.

(Overgenomen van MethodBase)
_MethodBase.IsSpecialName

Zie voor een beschrijving van dit lid IsSpecialName.

(Overgenomen van MethodBase)
_MethodBase.IsStatic

Zie voor een beschrijving van dit lid IsStatic.

(Overgenomen van MethodBase)
_MethodBase.IsVirtual

Zie voor een beschrijving van dit lid IsVirtual.

(Overgenomen van MethodBase)
_MethodInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van MethodInfo)
_MethodInfo.GetType()

Biedt toegang tot de GetType() methode vanuit COM.

(Overgenomen van MethodInfo)
_MethodInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van MethodInfo)
_MethodInfo.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van MethodInfo)
_MethodInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van MethodInfo)

Extensiemethoden

Name Description
GetCustomAttribute(MemberInfo, Type, Boolean)

Haalt een aangepast kenmerk op van een opgegeven type dat wordt toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttribute(MemberInfo, Type)

Hiermee wordt een aangepast kenmerk opgehaald van een opgegeven type dat wordt toegepast op een opgegeven lid.

GetCustomAttribute<T>(MemberInfo, Boolean)

Haalt een aangepast kenmerk op van een opgegeven type dat wordt toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttribute<T>(MemberInfo)

Hiermee wordt een aangepast kenmerk opgehaald van een opgegeven type dat wordt toegepast op een opgegeven lid.

GetCustomAttributes(MemberInfo, Boolean)

Haalt een verzameling aangepaste kenmerken op die worden toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttributes(MemberInfo, Type, Boolean)

Haalt een verzameling aangepaste kenmerken op van een opgegeven type dat wordt toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttributes(MemberInfo, Type)

Hiermee wordt een verzameling aangepaste kenmerken opgehaald van een opgegeven type dat wordt toegepast op een opgegeven lid.

GetCustomAttributes(MemberInfo)

Hiermee haalt u een verzameling aangepaste kenmerken op die worden toegepast op een opgegeven lid.

GetCustomAttributes<T>(MemberInfo, Boolean)

Haalt een verzameling aangepaste kenmerken op van een opgegeven type dat wordt toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttributes<T>(MemberInfo)

Hiermee wordt een verzameling aangepaste kenmerken opgehaald van een opgegeven type dat wordt toegepast op een opgegeven lid.

GetRuntimeBaseDefinition(MethodInfo)

Hiermee wordt een object opgehaald dat de opgegeven methode vertegenwoordigt op de directe of indirecte basisklasse waar de methode voor het eerst is gedeclareerd.

IsDefined(MemberInfo, Type, Boolean)

Hiermee wordt aangegeven of aangepaste kenmerken van een opgegeven type worden toegepast op een opgegeven lid, en eventueel toegepast op de bovenliggende kenmerken.

IsDefined(MemberInfo, Type)

Hiermee wordt aangegeven of aangepaste kenmerken van een opgegeven type worden toegepast op een opgegeven lid.

Van toepassing op

Zie ook