Udostępnij za pośrednictwem


MethodBuilder Klasa

Definicja

Definiuje i reprezentuje metodę (lub konstruktor) w klasie dynamicznej.

public ref class MethodBuilder sealed : System::Reflection::MethodInfo
public ref class MethodBuilder abstract : System::Reflection::MethodInfo
public ref class MethodBuilder sealed : System::Reflection::MethodInfo, System::Runtime::InteropServices::_MethodBuilder
public sealed class MethodBuilder : System.Reflection.MethodInfo
public abstract class MethodBuilder : System.Reflection.MethodInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class MethodBuilder : System.Reflection.MethodInfo, System.Runtime.InteropServices._MethodBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class MethodBuilder : System.Reflection.MethodInfo, System.Runtime.InteropServices._MethodBuilder
type MethodBuilder = class
    inherit MethodInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type MethodBuilder = class
    inherit MethodInfo
    interface _MethodBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodBuilder = class
    inherit MethodInfo
    interface _MethodBuilder
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Public MustInherit Class MethodBuilder
Inherits MethodInfo
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Implements _MethodBuilder
Dziedziczenie
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie użyto MethodBuilder klasy do utworzenia metody w ramach typu dynamicznego.

using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;

void AddMethodDynamically( TypeBuilder^ myTypeBld, 
                           String^ mthdName, 
                           array<Type^>^ mthdParams, 
                           Type^ returnType, 
                           String^ mthdAction )
{
   MethodBuilder^ myMthdBld = myTypeBld->DefineMethod( mthdName, static_cast<MethodAttributes>(MethodAttributes::Public | MethodAttributes::Static), returnType, mthdParams );
   ILGenerator^ ILOut = myMthdBld->GetILGenerator();
   int numParams = mthdParams->Length;
   for ( Byte x = 0; x < numParams; x++ )
   {
      ILOut->Emit( OpCodes::Ldarg_S, x );

   }
   if ( numParams > 1 )
   {
      for ( int y = 0; y < (numParams - 1); y++ )
      {
         if ( mthdAction->Equals( "A" ) )
                  ILOut->Emit( OpCodes::Add );
         else
         if ( mthdAction->Equals( "M" ) )
                  ILOut->Emit( OpCodes::Mul );
         else
                  ILOut->Emit( OpCodes::Add );

      }
   }

   ILOut->Emit( OpCodes::Ret );
};

void main()
{
   AppDomain^ myDomain = AppDomain::CurrentDomain;
   AssemblyName^ asmName = gcnew AssemblyName;
   asmName->Name = "MyDynamicAsm";
   AssemblyBuilder^ myAsmBuilder = myDomain->DefineDynamicAssembly( asmName, 
                                                                    AssemblyBuilderAccess::RunAndSave );
   ModuleBuilder^ myModule = myAsmBuilder->DefineDynamicModule( "MyDynamicAsm", 
                                                                "MyDynamicAsm.dll" );
   TypeBuilder^ myTypeBld = myModule->DefineType( "MyDynamicType", 
                                                  TypeAttributes::Public );
   
   // Get info from the user to build the method dynamically.
   Console::WriteLine( "Let's build a simple method dynamically!" );
   Console::WriteLine( "Please enter a few numbers, separated by spaces." );
   String^ inputNums = Console::ReadLine();
   Console::Write( "Do you want to [A]dd (default) or [M]ultiply these numbers? " );
   String^ myMthdAction = Console::ReadLine()->ToUpper();
   Console::Write( "Lastly, what do you want to name your new dynamic method? " );
   String^ myMthdName = Console::ReadLine();
   
   // Process inputNums into an array and create a corresponding Type array
   int index = 0;
   array<String^>^inputNumsList = inputNums->Split();
   array<Type^>^myMthdParams = gcnew array<Type^>(inputNumsList->Length);
   array<Object^>^inputValsList = gcnew array<Object^>(inputNumsList->Length);
   for each (String^ inputNum in inputNumsList)
   {
      inputValsList[ index ] = Convert::ToInt32( inputNum );
      myMthdParams[ index ] = int::typeid;
      index++;
   }

   
   // Now, call the method building method with the parameters, passing the
   // TypeBuilder by reference.
   AddMethodDynamically( myTypeBld, 
                         myMthdName, 
                         myMthdParams, 
                         int::typeid, 
                         myMthdAction );
   Type^ myType = myTypeBld->CreateType();

   Console::WriteLine( "---" );
   Console::WriteLine( "The result of {0} the inputted values is: {1}", 
                       ((myMthdAction->Equals( "M" )) ? "multiplying" : "adding"), 
                       myType->InvokeMember( myMthdName, 
                                             BindingFlags::InvokeMethod | BindingFlags::Public | BindingFlags::Static, 
                       nullptr, 
                       nullptr, 
                       inputValsList ) );
   Console::WriteLine( "---" );
   
   // Let's take a look at the method we created.
   // If you are interested in seeing the MSIL generated dynamically for the method
   // your program generated, change to the directory where you ran the compiled
   // code sample and type "ildasm MyDynamicAsm.dll" at the prompt. When the list
   // of manifest contents appears, click on "MyDynamicType" and then on the name of
   // of the method you provided during execution.

   myAsmBuilder->Save( "MyDynamicAsm.dll" );

   MethodInfo^ myMthdInfo = myType->GetMethod( myMthdName );
   Console::WriteLine( "Your Dynamic Method: {0};", myMthdInfo );
}

using System;
using System.Reflection;
using System.Reflection.Emit;

class DemoMethodBuilder
{
    public static void AddMethodDynamically (TypeBuilder myTypeBld,
                                             string mthdName,
                                             Type[] mthdParams,
                                             Type returnType,
                                             string mthdAction)
    {

        MethodBuilder myMthdBld = myTypeBld.DefineMethod(
                                             mthdName,
                                             MethodAttributes.Public |
                                             MethodAttributes.Static,
                                             returnType,
                                             mthdParams);

        ILGenerator ILout = myMthdBld.GetILGenerator();

        int numParams = mthdParams.Length;

        for (byte x=0; x < numParams; x++)
        {
            ILout.Emit(OpCodes.Ldarg_S, x);
        }

        if (numParams > 1)
        {
            for (int y=0; y<(numParams-1); y++)
            {
                switch (mthdAction)
                {
                    case "A": ILout.Emit(OpCodes.Add);
                              break;
                    case "M": ILout.Emit(OpCodes.Mul);
                              break;
                    default: ILout.Emit(OpCodes.Add);
                              break;
                }
            }
        }
        ILout.Emit(OpCodes.Ret);
    }

    public static void Main()
    {
        AppDomain myDomain = AppDomain.CurrentDomain;
        AssemblyName asmName = new AssemblyName();
        asmName.Name = "MyDynamicAsm";

        AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(
                                       asmName,
                                       AssemblyBuilderAccess.RunAndSave);

        ModuleBuilder myModule = myAsmBuilder.DefineDynamicModule("MyDynamicAsm",
                                                                  "MyDynamicAsm.dll");

        TypeBuilder myTypeBld = myModule.DefineType("MyDynamicType",
                                                    TypeAttributes.Public);

        // Get info from the user to build the method dynamically.
        Console.WriteLine("Let's build a simple method dynamically!");
        Console.WriteLine("Please enter a few numbers, separated by spaces.");
        string inputNums = Console.ReadLine();
        Console.Write("Do you want to [A]dd (default) or [M]ultiply these numbers? ");
        string myMthdAction = Console.ReadLine().ToUpper();
        Console.Write("Lastly, what do you want to name your new dynamic method? ");
        string myMthdName = Console.ReadLine();

        // Process inputNums into an array and create a corresponding Type array
        int index = 0;
        string[] inputNumsList = inputNums.Split();

        Type[] myMthdParams = new Type[inputNumsList.Length];
        object[] inputValsList = new object[inputNumsList.Length];

        foreach (string inputNum in inputNumsList)
        {
            inputValsList[index] = (object)Convert.ToInt32(inputNum);
                myMthdParams[index] = typeof(int);
                index++;
        }

        // Now, call the method building method with the parameters, passing the
        // TypeBuilder by reference.
        AddMethodDynamically(myTypeBld,
                             myMthdName,
                             myMthdParams,
                             typeof(int),
                             myMthdAction);

        Type myType = myTypeBld.CreateType();

        Console.WriteLine("---");
        Console.WriteLine("The result of {0} the inputted values is: {1}",
                          ((myMthdAction == "M") ? "multiplying" : "adding"),
                          myType.InvokeMember(myMthdName,
                          BindingFlags.InvokeMethod | BindingFlags.Public |
                          BindingFlags.Static,
                          null,
                          null,
                          inputValsList));
        Console.WriteLine("---");

        // Let's take a look at the method we created.
        // If you are interested in seeing the MSIL generated dynamically for the method
        // your program generated, change to the directory where you ran the compiled
        // code sample and type "ildasm MyDynamicAsm.dll" at the prompt. When the list
        // of manifest contents appears, click on "MyDynamicType" and then on the name of
        // of the method you provided during execution.

        myAsmBuilder.Save("MyDynamicAsm.dll");

        MethodInfo myMthdInfo = myType.GetMethod(myMthdName);
        Console.WriteLine("Your Dynamic Method: {0};", myMthdInfo.ToString());
    }
}
Imports System.Reflection
Imports System.Reflection.Emit

Class DemoMethodBuilder
   
   Public Shared Sub AddMethodDynamically(ByVal myTypeBld As TypeBuilder, _
                                          ByVal mthdName As String, _
                                          ByVal mthdParams() As Type, _
                                          ByVal returnType As Type, _
                                          ByVal mthdAction As String)
      
      Dim myMthdBld As MethodBuilder = myTypeBld.DefineMethod(mthdName, _
                                       MethodAttributes.Public Or MethodAttributes.Static, _
                                       returnType, _
                                       mthdParams)
      
      Dim ILout As ILGenerator = myMthdBld.GetILGenerator()
      
      Dim numParams As Integer = mthdParams.Length
      
      Dim x As Byte
      For x = 0 To numParams - 1
         ILout.Emit(OpCodes.Ldarg_S, x)
      Next x
      
      If numParams > 1 Then
         Dim y As Integer
         For y = 0 To (numParams - 1) - 1
            Select Case mthdAction
               Case "A"
                  ILout.Emit(OpCodes.Add)
               Case "M"
                  ILout.Emit(OpCodes.Mul)
               Case Else
                  ILout.Emit(OpCodes.Add)
            End Select
         Next y
      End If
      ILout.Emit(OpCodes.Ret)
   End Sub 
    
   
   Public Shared Sub Main()
      
      Dim myDomain As AppDomain = AppDomain.CurrentDomain
      Dim asmName As New AssemblyName()
      asmName.Name = "MyDynamicAsm"
      
      Dim myAsmBuilder As AssemblyBuilder = myDomain.DefineDynamicAssembly(asmName, _
                                            AssemblyBuilderAccess.RunAndSave)
      
      Dim myModule As ModuleBuilder = myAsmBuilder.DefineDynamicModule("MyDynamicAsm", _
                                                                       "MyDynamicAsm.dll")
      
      Dim myTypeBld As TypeBuilder = myModule.DefineType("MyDynamicType", TypeAttributes.Public)
      
      ' Get info from the user to build the method dynamically.
      Console.WriteLine("Let's build a simple method dynamically!")
      Console.WriteLine("Please enter a few numbers, separated by spaces.")
      Dim inputNums As String = Console.ReadLine()
      Console.Write("Do you want to [A]dd (default) or [M]ultiply these numbers? ")
      Dim myMthdAction As String = Console.ReadLine().ToUpper()
      Console.Write("Lastly, what do you want to name your new dynamic method? ")
      Dim myMthdName As String = Console.ReadLine()
      
      ' Process inputNums into an array and create a corresponding Type array 
      Dim index As Integer = 0
      Dim inputNumsList As String() = inputNums.Split()
      
      Dim myMthdParams(inputNumsList.Length - 1) As Type
      Dim inputValsList(inputNumsList.Length - 1) As Object
      
      
      Dim inputNum As String
      For Each inputNum In  inputNumsList
         inputValsList(index) = CType(Convert.ToInt32(inputNum), Object)
         myMthdParams(index) = GetType(Integer)
         index += 1
      Next inputNum
      
      ' Now, call the method building method with the parameters, passing the 
      ' TypeBuilder by reference.
      AddMethodDynamically(myTypeBld, myMthdName, myMthdParams, GetType(Integer), myMthdAction)
      
      Dim myType As Type = myTypeBld.CreateType()
     
      Dim description as String 
      If myMthdAction = "M" Then
         description = "multiplying"
      Else
         description = "adding"
      End If

      Console.WriteLine("---")
      Console.WriteLine("The result of {0} the values is: {1}", _
                         description, _
                         myType.InvokeMember(myMthdName, _
                                             BindingFlags.InvokeMethod _
                                               Or BindingFlags.Public _
                                               Or BindingFlags.Static, _
                                             Nothing, _
                                             Nothing, _
                                             inputValsList)) 
      Console.WriteLine("---")

      ' If you are interested in seeing the MSIL generated dynamically for the method
      ' your program generated, change to the directory where you ran the compiled
      ' code sample and type "ildasm MyDynamicAsm.dll" at the prompt. When the list
      ' of manifest contents appears, click on "MyDynamicType" and then on the name of
      ' of the method you provided during execution.
 
      myAsmBuilder.Save("MyDynamicAsm.dll") 

      Dim myMthdInfo As MethodInfo = myType.GetMethod(myMthdName)
      Console.WriteLine("Your Dynamic Method: {0};", myMthdInfo.ToString())
   End Sub 
End Class

Uwagi

Aby uzyskać więcej informacji na temat tego interfejsu API, zobacz dodatkowe uwagi dotyczące interfejsu API dla klasy MethodBuilder.

Konstruktory

MethodBuilder()

Inicjuje nowe wystąpienie klasy MethodBuilder.

Właściwości

Attributes

Pobiera atrybuty dla tej metody.

CallingConvention

Zwraca konwencję wywoływania metody .

ContainsGenericParameters

Nieobsługiwane dla tego typu.

ContainsGenericParameters

Pobiera wartość wskazującą, czy metoda ogólna zawiera nieprzypisane parametry typu ogólnego.

(Odziedziczone po MethodInfo)
CustomAttributes

Pobiera kolekcję zawierającą atrybuty niestandardowe tego elementu członkowskiego.

(Odziedziczone po MemberInfo)
DeclaringType

Zwraca typ, który deklaruje tę metodę.

InitLocals

Pobiera lub ustawia wartość logiczną określającą, czy zmienne lokalne w tej metodzie są inicjowane przez zero. Wartość domyślna tej właściwości to true.

InitLocalsCore

Po zastąpieniu w klasie pochodnej pobiera lub ustawia wartość, która wskazuje, czy zmienne lokalne w tej metodzie są inicjowane zero.

IsAbstract

Pobiera wartość wskazującą, czy metoda jest abstrakcyjna.

(Odziedziczone po MethodBase)
IsAssembly

Pobiera wartość wskazującą, czy potencjalna widoczność tej metody lub konstruktora jest opisana przez Assemblyprogram ; czyli metoda lub konstruktor jest widoczna co najwyżej dla innych typów w tym samym zestawie i nie jest widoczna dla typów pochodnych poza zestawem.

(Odziedziczone po MethodBase)
IsCollectible

Pobiera wartość wskazującą, czy ten MemberInfo obiekt jest częścią zestawu przechowywanego w obiekcie zbieralnym AssemblyLoadContext.

(Odziedziczone po MemberInfo)
IsConstructedGenericMethod

Definiuje i reprezentuje metodę (lub konstruktor) w klasie dynamicznej.

IsConstructedGenericMethod

Definiuje i reprezentuje metodę (lub konstruktor) w klasie dynamicznej.

(Odziedziczone po MethodBase)
IsConstructor

Pobiera wartość wskazującą, czy metoda jest konstruktorem.

(Odziedziczone po MethodBase)
IsFamily

Pobiera wartość wskazującą, czy widoczność tej metody lub konstruktora jest opisana przez Family, czyli metoda lub konstruktor jest widoczna tylko w jej klasach i klasach pochodnych.

(Odziedziczone po MethodBase)
IsFamilyAndAssembly

Pobiera wartość wskazującą, czy widoczność tej metody lub konstruktora jest opisana przez FamANDAssemmetodę , czyli metodę lub konstruktor może być wywoływana przez klasy pochodne, ale tylko wtedy, gdy znajdują się w tym samym zestawie.

(Odziedziczone po MethodBase)
IsFamilyOrAssembly

Pobiera wartość wskazującą, czy potencjalna widoczność tej metody lub konstruktora jest opisana przez FamORAssemmetodę , czyli metodę lub konstruktor może być wywoływana przez klasy pochodne wszędzie tam, gdzie są, i przez klasy w tym samym zestawie.

(Odziedziczone po MethodBase)
IsFinal

Pobiera wartość wskazującą, czy ta metoda to final.

(Odziedziczone po MethodBase)
IsGenericMethod

Pobiera wartość wskazującą, czy metoda jest metodą ogólną.

IsGenericMethod

Pobiera wartość wskazującą, czy bieżąca metoda jest metodą ogólną.

(Odziedziczone po MethodInfo)
IsGenericMethodDefinition

Pobiera wartość wskazującą, czy bieżący MethodBuilder obiekt reprezentuje definicję metody ogólnej.

IsGenericMethodDefinition

Pobiera wartość wskazującą, czy bieżący MethodInfo reprezentuje definicję metody ogólnej.

(Odziedziczone po MethodInfo)
IsHideBySig

Pobiera wartość wskazującą, czy tylko składowa tego samego rodzaju z dokładnie tym samym podpisem jest ukryta w klasie pochodnej.

(Odziedziczone po MethodBase)
IsPrivate

Pobiera wartość wskazującą, czy ten element członkowski jest prywatny.

(Odziedziczone po MethodBase)
IsPublic

Pobiera wartość wskazującą, czy jest to metoda publiczna.

(Odziedziczone po MethodBase)
IsSecurityCritical

Zgłasza wartość NotSupportedException we wszystkich przypadkach.

IsSecurityCritical

Pobiera wartość wskazującą, czy bieżąca metoda lub konstruktor ma krytyczne znaczenie dla zabezpieczeń, czy bezpieczeństwo krytyczne dla bezpieczeństwa na bieżącym poziomie zaufania, a zatem może wykonywać operacje krytyczne.

(Odziedziczone po MethodBase)
IsSecuritySafeCritical

Zgłasza wartość NotSupportedException we wszystkich przypadkach.

IsSecuritySafeCritical

Pobiera wartość wskazującą, czy bieżąca metoda lub konstruktor ma krytyczne znaczenie dla zabezpieczeń na bieżącym poziomie zaufania; oznacza to, czy może wykonywać operacje krytyczne i można uzyskiwać do niego dostęp za pomocą przezroczystego kodu.

(Odziedziczone po MethodBase)
IsSecurityTransparent

Zgłasza wartość NotSupportedException we wszystkich przypadkach.

IsSecurityTransparent

Pobiera wartość wskazującą, czy bieżąca metoda lub konstruktor jest przezroczysta na bieżącym poziomie zaufania i dlatego nie może wykonywać operacji krytycznych.

(Odziedziczone po MethodBase)
IsSpecialName

Pobiera wartość wskazującą, czy ta metoda ma specjalną nazwę.

(Odziedziczone po MethodBase)
IsStatic

Pobiera wartość wskazującą, czy metoda to static.

(Odziedziczone po MethodBase)
IsVirtual

Pobiera wartość wskazującą, czy metoda to virtual.

(Odziedziczone po MethodBase)
MemberType

Pobiera wartość wskazującą MemberTypes , że ten element członkowski jest metodą.

(Odziedziczone po MethodInfo)
MetadataToken

Pobiera token identyfikujący bieżący moduł dynamiczny w metadanych.

MetadataToken

Pobiera wartość identyfikującą element metadanych.

(Odziedziczone po MemberInfo)
MethodHandle

Pobiera wewnętrzny uchwyt dla metody . Użyj tego dojścia, aby uzyskać dostęp do dojścia do podstawowych metadanych.

MethodHandle

Pobiera dojście do wewnętrznej reprezentacji metadanych metody.

(Odziedziczone po MethodBase)
MethodImplementationFlags

Definiuje i reprezentuje metodę (lub konstruktor) w klasie dynamicznej.

MethodImplementationFlags

MethodImplAttributes Pobiera flagi określające atrybuty implementacji metody.

(Odziedziczone po MethodBase)
Module

Pobiera moduł, w którym jest definiowana bieżąca metoda.

Module

Pobiera moduł, w którym typ, który deklaruje element członkowski reprezentowany przez bieżący MemberInfo jest zdefiniowany.

(Odziedziczone po MemberInfo)
Name

Pobiera nazwę tej metody.

ReflectedType

Pobiera klasę użytą w odbiciu w celu uzyskania tego obiektu.

ReflectedType

Pobiera obiekt klasy, który został użyty do uzyskania tego wystąpienia klasy MemberInfo.

(Odziedziczone po MemberInfo)
ReturnParameter

ParameterInfo Pobiera obiekt zawierający informacje o zwracanym typie metody, na przykład o tym, czy zwracany typ ma modyfikatory niestandardowe.

ReturnParameter

ParameterInfo Pobiera obiekt zawierający informacje o zwracanym typie metody, na przykład o tym, czy zwracany typ ma modyfikatory niestandardowe.

(Odziedziczone po MethodInfo)
ReturnType

Pobiera zwracany typ metody reprezentowanej przez ten MethodBuilderelement .

ReturnType

Pobiera zwracany typ tej metody.

(Odziedziczone po MethodInfo)
ReturnTypeCustomAttributes

Zwraca atrybuty niestandardowe zwracanego typu metody.

ReturnTypeCustomAttributes

Pobiera atrybuty niestandardowe dla typu zwracanego.

(Odziedziczone po MethodInfo)
Signature

Pobiera podpis metody .

Metody

AddDeclarativeSecurity(SecurityAction, PermissionSet)

Dodaje zabezpieczenia deklaratywne do tej metody.

CreateDelegate(Type)

Tworzy delegat określonego typu na podstawie tej metody.

(Odziedziczone po MethodInfo)
CreateDelegate(Type, Object)

Tworzy delegat określonego typu z określonym obiektem docelowym z tej metody.

(Odziedziczone po MethodInfo)
CreateDelegate<T>()

Tworzy delegata typu T na podstawie tej metody.

(Odziedziczone po MethodInfo)
CreateDelegate<T>(Object)

Tworzy delegata typu T z określonym obiektem docelowym z tej metody.

(Odziedziczone po MethodInfo)
CreateMethodBody(Byte[], Int32)

Tworzy treść metody przy użyciu dostarczonej tablicy bajtów instrukcji języka microsoft intermediate language (MSIL).

DefineGenericParameters(String[])

Ustawia liczbę parametrów typu ogólnego dla bieżącej metody, określa ich nazwy i zwraca tablicę GenericTypeParameterBuilder obiektów, które mogą służyć do definiowania ich ograniczeń.

DefineGenericParametersCore(String[])

Po zastąpieniu w klasie pochodnej ustawia liczbę parametrów typu ogólnego dla bieżącej metody, określa ich nazwy i zwraca tablicę GenericTypeParameterBuilder obiektów, które mogą służyć do definiowania ich ograniczeń.

DefineParameter(Int32, ParameterAttributes, String)

Ustawia atrybuty parametru i nazwę parametru tej metody lub wartość zwracaną tej metody. Zwraca obiekt ParameterBuilder, który może służyć do stosowania atrybutów niestandardowych.

DefineParameterCore(Int32, ParameterAttributes, String)

Po zastąpieniu w klasie pochodnej definiuje parametr lub parametr zwracany dla tej metody.

Equals(Object)

Określa, czy dany obiekt jest równy temu wystąpieniu.

GetBaseDefinition()

Zwróć podstawową implementację dla metody .

GetBaseDefinition()

Po przesłonięciu w klasie pochodnej zwraca MethodInfo obiekt dla metody w bezpośrednich lub pośrednich klasach bazowych, w której metoda reprezentowana przez to wystąpienie została po raz pierwszy zadeklarowana.

(Odziedziczone po MethodInfo)
GetCustomAttributes(Boolean)

Zwraca wszystkie atrybuty niestandardowe zdefiniowane dla tej metody.

GetCustomAttributes(Boolean)

Po zastąpieniu w klasie pochodnej zwraca tablicę wszystkich atrybutów niestandardowych zastosowanych do tego elementu członkowskiego.

(Odziedziczone po MemberInfo)
GetCustomAttributes(Type, Boolean)

Zwraca atrybuty niestandardowe identyfikowane przez dany typ.

GetCustomAttributes(Type, Boolean)

Po przesłonięciu w klasie pochodnej zwraca tablicę atrybutów niestandardowych zastosowanych do tego elementu członkowskiego i zidentyfikowaną przez Typeelement .

(Odziedziczone po MemberInfo)
GetCustomAttributesData()

Zwraca listę CustomAttributeData obiektów reprezentujących dane dotyczące atrybutów, które zostały zastosowane do elementu docelowego.

(Odziedziczone po MemberInfo)
GetGenericArguments()

Zwraca tablicę GenericTypeParameterBuilder obiektów reprezentujących parametry typu metody, jeśli jest ona ogólna.

GetGenericArguments()

Zwraca tablicę Type obiektów reprezentujących argumenty typu metody ogólnej lub parametry typu definicji metody ogólnej.

(Odziedziczone po MethodInfo)
GetGenericMethodDefinition()

Zwraca tę metodę.

GetGenericMethodDefinition()

Zwraca obiekt reprezentujący definicję MethodInfo metody ogólnej, z której można utworzyć bieżącą metodę.

(Odziedziczone po MethodInfo)
GetHashCode()

Pobiera kod skrótu dla tej metody.

GetILGenerator()

Zwraca wartość ILGenerator dla tej metody z domyślnym rozmiarem strumienia języka Microsoft Intermediate Language (MSIL) o rozmiarze 64 bajtów.

GetILGenerator(Int32)

Zwraca wartość ILGenerator dla tej metody o określonym rozmiarze strumienia języka Microsoft Intermediate Language (MSIL).

GetILGeneratorCore(Int32)

Po zastąpieniu w klasie pochodnej pobiera element ILGenerator , który może służyć do emitowania treści metody dla tej metody.

GetMethodBody()

Po zastąpieniu w klasie pochodnej pobiera MethodBody obiekt, który zapewnia dostęp do strumienia MSIL, zmiennych lokalnych i wyjątków dla bieżącej metody.

(Odziedziczone po MethodBase)
GetMethodImplementationFlags()

Zwraca flagi implementacji dla metody .

GetMethodImplementationFlags()

Po przesłonięciu MethodImplAttributes w klasie pochodnej zwraca flagi.

(Odziedziczone po MethodBase)
GetModule()

Zwraca odwołanie do modułu zawierającego tę metodę.

GetParameters()

Zwraca parametry tej metody.

GetToken()

MethodToken Zwraca wartość reprezentującą token dla tej metody.

GetType()

Odnajduje atrybuty metody i zapewnia dostęp do metadanych metody.

(Odziedziczone po MethodInfo)
HasSameMetadataDefinitionAs(MemberInfo)

Definiuje i reprezentuje metodę (lub konstruktor) w klasie dynamicznej.

(Odziedziczone po MemberInfo)
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)

Dynamicznie wywołuje metodę odzwierciedlaną przez to wystąpienie na danym obiekcie, przekazując określone parametry i pod ograniczeniami danego elementu binder.

Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)

Podczas zastępowania w klasie pochodnej wywołuje odbitą metodę lub konstruktor z podanymi parametrami.

(Odziedziczone po MethodBase)
Invoke(Object, Object[])

Wywołuje metodę lub konstruktor reprezentowany przez bieżące wystąpienie przy użyciu określonych parametrów.

(Odziedziczone po MethodInfo)
IsDefined(Type, Boolean)

Sprawdza, czy określony typ atrybutu niestandardowego jest zdefiniowany.

IsDefined(Type, Boolean)

Po przesłonięciu w klasie pochodnej wskazuje, czy do tego elementu członkowskiego zastosowano co najmniej jeden atrybut określonego typu lub jego typów pochodnych.

(Odziedziczone po MemberInfo)
MakeGenericMethod(Type[])

Zwraca metodę ogólną skonstruowaną z bieżącej definicji metody ogólnej przy użyciu określonych argumentów typu ogólnego.

MakeGenericMethod(Type[])

Podstawia elementy tablicy typów dla parametrów typu bieżącej definicji metody ogólnej i zwraca MethodInfo obiekt reprezentujący wynikową skonstruowaną metodę.

(Odziedziczone po MethodInfo)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
SetCustomAttribute(ConstructorInfo, Byte[])

Ustawia atrybut niestandardowy przy użyciu określonego obiektu blob atrybutu niestandardowego.

SetCustomAttribute(CustomAttributeBuilder)

Ustawia atrybut niestandardowy przy użyciu konstruktora atrybutów niestandardowych.

SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>)

Po zastąpieniu w klasie pochodnej ustawia atrybut niestandardowy dla tego zestawu.

SetImplementationFlags(MethodImplAttributes)

Ustawia flagi implementacji dla tej metody.

SetImplementationFlagsCore(MethodImplAttributes)

Po zastąpieniu w klasie pochodnej ustawia flagi implementacji dla tej metody.

SetMarshal(UnmanagedMarshal)
Przestarzałe.

Ustawia marshaling informacji dla zwracanego typu tej metody.

SetMethodBody(Byte[], Int32, Byte[], IEnumerable<ExceptionHandler>, IEnumerable<Int32>)

Tworzy treść metody przy użyciu określonej tablicy bajtów instrukcji języka microsoft intermediate language (MSIL).

SetParameters(Type[])

Ustawia liczbę i typy parametrów dla metody.

SetReturnType(Type)

Ustawia zwracany typ metody.

SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][])

Ustawia sygnaturę metody, w tym typ zwracany, typy parametrów oraz wymagane i opcjonalne modyfikatory niestandardowe zwracanego typu i typów parametrów.

SetSignatureCore(Type, Type[], Type[], Type[], Type[][], Type[][])

Po zastąpieniu w klasie pochodnej ustawia sygnaturę metody, w tym typ zwracany, typy parametrów oraz wymagane i opcjonalne modyfikatory niestandardowe zwracanego typu i typów parametrów.

SetSymCustomAttribute(String, Byte[])

Ustaw symboliczny atrybut niestandardowy przy użyciu obiektu blob.

ToString()

Zwraca to MethodBuilder wystąpienie jako ciąg.

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po MemberInfo)
_MemberInfo.GetType()

Type Pobiera obiekt reprezentujący klasęMemberInfo.

(Odziedziczone po MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, których następnie można użyć do uzyskania informacji o typie interfejsu.

(Odziedziczone po MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po MemberInfo)
_MethodBase.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po MethodBase)
_MethodBase.GetType()

Aby uzyskać opis tego członka, zobacz GetType().

(Odziedziczone po MethodBase)
_MethodBase.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, których następnie można użyć do uzyskania informacji o typie interfejsu.

(Odziedziczone po MethodBase)
_MethodBase.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po MethodBase)
_MethodBase.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po MethodBase)
_MethodBase.IsAbstract

Aby uzyskać opis tego członka, zobacz IsAbstract.

(Odziedziczone po MethodBase)
_MethodBase.IsAssembly

Aby uzyskać opis tego członka, zobacz IsAssembly.

(Odziedziczone po MethodBase)
_MethodBase.IsConstructor

Aby uzyskać opis tego członka, zobacz IsConstructor.

(Odziedziczone po MethodBase)
_MethodBase.IsFamily

Aby uzyskać opis tego członka, zobacz IsFamily.

(Odziedziczone po MethodBase)
_MethodBase.IsFamilyAndAssembly

Aby uzyskać opis tego członka, zobacz IsFamilyAndAssembly.

(Odziedziczone po MethodBase)
_MethodBase.IsFamilyOrAssembly

Aby uzyskać opis tego członka, zobacz IsFamilyOrAssembly.

(Odziedziczone po MethodBase)
_MethodBase.IsFinal

Aby uzyskać opis tego członka, zobacz IsFinal.

(Odziedziczone po MethodBase)
_MethodBase.IsHideBySig

Aby uzyskać opis tego członka, zobacz IsHideBySig.

(Odziedziczone po MethodBase)
_MethodBase.IsPrivate

Aby uzyskać opis tego członka, zobacz IsPrivate.

(Odziedziczone po MethodBase)
_MethodBase.IsPublic

Aby uzyskać opis tego członka, zobacz IsPublic.

(Odziedziczone po MethodBase)
_MethodBase.IsSpecialName

Aby uzyskać opis tego członka, zobacz IsSpecialName.

(Odziedziczone po MethodBase)
_MethodBase.IsStatic

Aby uzyskać opis tego członka, zobacz IsStatic.

(Odziedziczone po MethodBase)
_MethodBase.IsVirtual

Aby uzyskać opis tego członka, zobacz IsVirtual.

(Odziedziczone po MethodBase)
_MethodBuilder.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

_MethodBuilder.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, których następnie można użyć do uzyskania informacji o typie interfejsu.

_MethodBuilder.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

_MethodBuilder.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

_MethodInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po MethodInfo)
_MethodInfo.GetType()

Zapewnia dostęp do GetType() metody z modelu COM.

(Odziedziczone po MethodInfo)
_MethodInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu.

(Odziedziczone po MethodInfo)
_MethodInfo.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po MethodInfo)
_MethodInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po MethodInfo)
ICustomAttributeProvider.GetCustomAttributes(Boolean)

Zwraca tablicę wszystkich atrybutów niestandardowych zdefiniowanych w tym elemencie członkowskim, z wyłączeniem nazwanych atrybutów lub pustą tablicą, jeśli nie ma atrybutów niestandardowych.

(Odziedziczone po MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

Zwraca tablicę atrybutów niestandardowych zdefiniowanych na tym elemencie członkowskim, identyfikowaną przez typ lub pustą tablicę, jeśli nie ma atrybutów niestandardowych tego typu.

(Odziedziczone po MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean)

Wskazuje, czy na tym elemencie członkowskim zdefiniowano jedno lub więcej wystąpień attributeType .

(Odziedziczone po MemberInfo)

Metody rozszerzania

GetCustomAttribute(MemberInfo, Type)

Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego.

GetCustomAttribute(MemberInfo, Type, Boolean)

Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego, i opcjonalnie sprawdza przodków tego elementu członkowskiego.

GetCustomAttribute<T>(MemberInfo)

Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego.

GetCustomAttribute<T>(MemberInfo, Boolean)

Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego, i opcjonalnie sprawdza przodków tego elementu członkowskiego.

GetCustomAttributes(MemberInfo)

Pobiera kolekcję atrybutów niestandardowych, które są stosowane do określonego elementu członkowskiego.

GetCustomAttributes(MemberInfo, Boolean)

Pobiera kolekcję atrybutów niestandardowych, które są stosowane do określonego elementu członkowskiego, i opcjonalnie sprawdza przodków tego elementu członkowskiego.

GetCustomAttributes(MemberInfo, Type)

Pobiera kolekcję atrybutów niestandardowych określonego typu, które są stosowane do określonego elementu członkowskiego.

GetCustomAttributes(MemberInfo, Type, Boolean)

Pobiera kolekcję atrybutów niestandardowych określonego typu, które są stosowane do określonego elementu członkowskiego, i opcjonalnie sprawdza przodków tego elementu członkowskiego.

GetCustomAttributes<T>(MemberInfo)

Pobiera kolekcję atrybutów niestandardowych określonego typu, które są stosowane do określonego elementu członkowskiego.

GetCustomAttributes<T>(MemberInfo, Boolean)

Pobiera kolekcję atrybutów niestandardowych określonego typu, które są stosowane do określonego elementu członkowskiego, i opcjonalnie sprawdza przodków tego elementu członkowskiego.

IsDefined(MemberInfo, Type)

Wskazuje, czy atrybuty niestandardowe określonego typu są stosowane do określonego elementu członkowskiego.

IsDefined(MemberInfo, Type, Boolean)

Wskazuje, czy atrybuty niestandardowe określonego typu są stosowane do określonego elementu członkowskiego i, opcjonalnie, stosowane do jego elementów nadrzędnych.

GetMetadataToken(MemberInfo)

Pobiera token metadanych dla danego elementu członkowskiego, jeśli jest dostępny.

HasMetadataToken(MemberInfo)

Zwraca wartość wskazującą, czy token metadanych jest dostępny dla określonego elementu członkowskiego.

GetBaseDefinition(MethodInfo)

Definiuje i reprezentuje metodę (lub konstruktor) w klasie dynamicznej.

GetRuntimeBaseDefinition(MethodInfo)

Pobiera obiekt reprezentujący określoną metodę w bezpośrednich lub pośrednich klasach bazowych, w których metoda została po raz pierwszy zadeklarowana.

Dotyczy