MethodBuilder Класс

Определение

Определяет и представляет метод (или конструктор) в динамическом классе.

public ref class MethodBuilder sealed : System::Reflection::MethodInfo, System::Runtime::InteropServices::_MethodBuilder
public ref class MethodBuilder sealed : 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
public sealed class MethodBuilder : System.Reflection.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
type MethodBuilder = class
    inherit MethodInfo
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Implements _MethodBuilder
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Наследование
Атрибуты
Реализации

Примеры

В следующем примере класс используется MethodBuilder для создания метода в динамическом типе.


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

Комментарии

Дополнительные сведения об этом API см. в дополнительных примечаниях API для MethodBuilder.

Свойства

Имя Описание
Attributes

Извлекает атрибуты для этого метода.

CallingConvention

Возвращает соглашение о вызове метода.

ContainsGenericParameters

Не поддерживается для этого типа.

CustomAttributes

Возвращает коллекцию, содержащую настраиваемые атрибуты этого члена.

(Унаследовано от MemberInfo)
DeclaringType

Возвращает тип, объявляющий этот метод.

InitLocals

Возвращает или задает логическое значение, указывающее, инициализированы ли локальные переменные в этом методе. Значение по умолчанию этого свойства равно true.

IsAbstract

Возвращает значение, указывающее, является ли метод абстрактным.

(Унаследовано от MethodBase)
IsAssembly

Получает значение, указывающее, описывается ли потенциальная видимость этого метода или конструктора Assembly; то есть метод или конструктор не отображается в большинстве других типов в той же сборке и не отображается производным типам за пределами сборки.

(Унаследовано от MethodBase)
IsConstructedGenericMethod

Определяет и представляет метод (или конструктор) в динамическом классе.

IsConstructor

Возвращает значение, указывающее, является ли метод конструктором.

(Унаследовано от MethodBase)
IsFamily

Возвращает значение, указывающее, описывается Familyли видимость этого метода или конструктора; то есть метод или конструктор видим только в его классе и производных классах.

(Унаследовано от MethodBase)
IsFamilyAndAssembly

Возвращает значение, указывающее, описывается FamANDAssemли видимость этого метода или конструктора; то есть метод или конструктор можно вызывать производными классами, но только в том случае, если они находятся в одной сборке.

(Унаследовано от MethodBase)
IsFamilyOrAssembly

Получает значение, указывающее, описывается FamORAssemли потенциальная видимость этого метода или конструктора; то есть метод или конструктор можно вызывать производными классами, где бы они ни находились, и классами в одной сборке.

(Унаследовано от MethodBase)
IsFinal

Возвращает значение, указывающее, является finalли этот метод.

(Унаследовано от MethodBase)
IsGenericMethod

Возвращает значение, указывающее, является ли метод универсальным методом.

IsGenericMethodDefinition

Возвращает значение, указывающее, представляет ли текущий MethodBuilder объект определение универсального метода.

IsHideBySig

Возвращает значение, указывающее, скрыт ли в производном классе только член того же типа с той же сигнатурой.

(Унаследовано от MethodBase)
IsPrivate

Возвращает значение, указывающее, является ли этот элемент частным.

(Унаследовано от MethodBase)
IsPublic

Возвращает значение, указывающее, является ли это общедоступным методом.

(Унаследовано от MethodBase)
IsSecurityCritical

Вызывается NotSupportedException во всех случаях.

IsSecurityCritical

Возвращает значение, указывающее, является ли текущий метод или конструктор критически важным или безопасным для безопасности на текущем уровне доверия и поэтому может выполнять критически важные операции.

(Унаследовано от MethodBase)
IsSecuritySafeCritical

Вызывается NotSupportedException во всех случаях.

IsSecuritySafeCritical

Возвращает значение, указывающее, является ли текущий метод или конструктор безопасным для системы безопасности на текущем уровне доверия; т. е. может ли он выполнять критически важные операции и получить доступ к ним с помощью прозрачного кода.

(Унаследовано от MethodBase)
IsSecurityTransparent

Вызывается NotSupportedException во всех случаях.

IsSecurityTransparent

Возвращает значение, указывающее, является ли текущий метод или конструктор прозрачным на текущем уровне доверия и поэтому не может выполнять критически важные операции.

(Унаследовано от MethodBase)
IsSpecialName

Возвращает значение, указывающее, имеет ли этот метод специальное имя.

(Унаследовано от MethodBase)
IsStatic

Возвращает значение, указывающее, является staticли метод.

(Унаследовано от MethodBase)
IsVirtual

Возвращает значение, указывающее, является virtualли метод.

(Унаследовано от MethodBase)
MemberType

MemberTypes Возвращает значение, указывающее, что этот член является методом.

(Унаследовано от MethodInfo)
MetadataToken

Возвращает значение, определяющее элемент метаданных.

(Унаследовано от MemberInfo)
MethodHandle

Извлекает внутренний дескриптор для метода. Используйте этот дескриптор для доступа к базовому дескриптору метаданных.

MethodImplementationFlags

Возвращает флаги, указывающие MethodImplAttributes атрибуты реализации метода.

(Унаследовано от MethodBase)
Module

Возвращает модуль, в котором определен текущий метод.

Name

Извлекает имя этого метода.

ReflectedType

Извлекает класс, используемый в отражении для получения этого объекта.

ReturnParameter

ParameterInfo Возвращает объект, содержащий сведения о возвращаемом типе метода, например, имеет ли тип возвращаемого типа настраиваемые модификаторы.

ReturnType

Возвращает возвращаемый тип метода, представленного этим MethodBuilderметодом.

ReturnType

Возвращает тип возвращаемого значения этого метода.

(Унаследовано от MethodInfo)
ReturnTypeCustomAttributes

Возвращает настраиваемые атрибуты возвращаемого типа метода.

Signature

Извлекает сигнатуру метода.

Методы

Имя Описание
AddDeclarativeSecurity(SecurityAction, PermissionSet)

Добавляет декларативную безопасность в этот метод.

CreateDelegate(Type, Object)

Создает делегат указанного типа с указанным целевым объектом из этого метода.

(Унаследовано от MethodInfo)
CreateDelegate(Type)

Создает делегат указанного типа из этого метода.

(Унаследовано от MethodInfo)
CreateMethodBody(Byte[], Int32)

Создает текст метода с помощью предоставленного массива байтов Microsoft инструкций по промежуточному языку (MSIL).

DefineGenericParameters(String[])

Задает число параметров универсального типа для текущего метода, задает их имена и возвращает массив объектов, которые можно использовать для определения ограничений GenericTypeParameterBuilder .

DefineParameter(Int32, ParameterAttributes, String)

Задает атрибуты параметров и имя параметра этого метода или возвращаемое значение этого метода. Возвращает параметрBuilder, который можно использовать для применения пользовательских атрибутов.

Equals(Object)

Определяет, равен ли данный объект этому экземпляру.

GetBaseDefinition()

Возвращает базовую реализацию для метода.

GetCustomAttributes(Boolean)

Возвращает все пользовательские атрибуты, определенные для этого метода.

GetCustomAttributes(Type, Boolean)

Возвращает настраиваемые атрибуты, определяемые заданным типом.

GetCustomAttributesData()

Возвращает список CustomAttributeData объектов, представляющих данные о атрибутах, примененных к целевому элементу.

(Унаследовано от MemberInfo)
GetGenericArguments()

Возвращает массив GenericTypeParameterBuilder объектов, представляющих параметры типа метода, если он является универсальным.

GetGenericMethodDefinition()

Возвращает этот метод.

GetHashCode()

Возвращает хэш-код для этого метода.

GetILGenerator()

Возвращает ILGenerator для этого метода с размером потока по умолчанию Microsoft промежуточного языка (MSIL) размером 64 байта.

GetILGenerator(Int32)

Возвращает ILGenerator для этого метода с указанным размером потока Microsoft промежуточного языка (MSIL).

GetMethodBody()

При переопределении в производном классе получает MethodBody объект, предоставляющий доступ к потоку MSIL, локальным переменным и исключениям для текущего метода.

(Унаследовано от MethodBase)
GetMethodImplementationFlags()

Возвращает флаги реализации для метода.

GetModule()

Возвращает ссылку на модуль, содержащий этот метод.

GetParameters()

Возвращает параметры этого метода.

GetToken()

Возвращает маркер MethodToken для этого метода.

GetType()

Обнаруживает атрибуты метода и предоставляет доступ к метаданным метода.

(Унаследовано от MethodInfo)
HasSameMetadataDefinitionAs(MemberInfo)

Определяет и представляет метод (или конструктор) в динамическом классе.

(Унаследовано от MemberInfo)
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)

Динамически вызывает метод, отраженный этим экземпляром в заданном объекте, передавая указанные параметры, и при ограничениях данного привязчика.

Invoke(Object, Object[])

Вызывает метод или конструктор, представленный текущим экземпляром, с помощью указанных параметров.

(Унаследовано от MethodInfo)
IsDefined(Type, Boolean)

Проверяет, определен ли указанный пользовательский тип атрибута.

MakeGenericMethod(Type[])

Возвращает универсальный метод, созданный из текущего определения универсального метода с помощью указанных аргументов универсального типа.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
SetCustomAttribute(ConstructorInfo, Byte[])

Задает настраиваемый атрибут с помощью указанного пользовательского BLOB-объекта атрибута.

SetCustomAttribute(CustomAttributeBuilder)

Задает пользовательский атрибут с помощью построителя настраиваемых атрибутов.

SetImplementationFlags(MethodImplAttributes)

Задает флаги реализации для этого метода.

SetMarshal(UnmanagedMarshal)
Устаревшие..

Задает сведения о маршалинге для возвращаемого типа этого метода.

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

Создает текст метода с помощью указанного массива байтов Microsoft инструкций по промежуточному языку (MSIL).

SetParameters(Type[])

Задает число и типы параметров для метода.

SetReturnType(Type)

Задает тип возвращаемого метода.

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

Задает сигнатуру метода, включая возвращаемый тип, типы параметров и обязательные и необязательные настраиваемые модификаторы возвращаемого типа и типов параметров.

SetSymCustomAttribute(String, Byte[])

Задайте символьный пользовательский атрибут с помощью большого двоичного объекта.

ToString()

Возвращает этот MethodBuilder экземпляр в виде строки.

Явные реализации интерфейса

Имя Описание
_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от MemberInfo)
_MemberInfo.GetType()

Type Возвращает объект, MemberInfo представляющий класс.

(Унаследовано от MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса.

(Унаследовано от MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к свойствам и методам, предоставляемым объектом.

(Унаследовано от MemberInfo)
_MethodBase.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от MethodBase)
_MethodBase.GetType()

Описание этого элемента см. в разделе GetType().

(Унаследовано от MethodBase)
_MethodBase.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса.

(Унаследовано от MethodBase)
_MethodBase.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от MethodBase)
_MethodBase.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к свойствам и методам, предоставляемым объектом.

(Унаследовано от MethodBase)
_MethodBase.IsAbstract

Описание этого элемента см. в разделе IsAbstract.

(Унаследовано от MethodBase)
_MethodBase.IsAssembly

Описание этого элемента см. в разделе IsAssembly.

(Унаследовано от MethodBase)
_MethodBase.IsConstructor

Описание этого элемента см. в разделе IsConstructor.

(Унаследовано от MethodBase)
_MethodBase.IsFamily

Описание этого элемента см. в разделе IsFamily.

(Унаследовано от MethodBase)
_MethodBase.IsFamilyAndAssembly

Описание этого элемента см. в разделе IsFamilyAndAssembly.

(Унаследовано от MethodBase)
_MethodBase.IsFamilyOrAssembly

Описание этого элемента см. в разделе IsFamilyOrAssembly.

(Унаследовано от MethodBase)
_MethodBase.IsFinal

Описание этого элемента см. в разделе IsFinal.

(Унаследовано от MethodBase)
_MethodBase.IsHideBySig

Описание этого элемента см. в разделе IsHideBySig.

(Унаследовано от MethodBase)
_MethodBase.IsPrivate

Описание этого элемента см. в разделе IsPrivate.

(Унаследовано от MethodBase)
_MethodBase.IsPublic

Описание этого элемента см. в разделе IsPublic.

(Унаследовано от MethodBase)
_MethodBase.IsSpecialName

Описание этого элемента см. в разделе IsSpecialName.

(Унаследовано от MethodBase)
_MethodBase.IsStatic

Описание этого элемента см. в разделе IsStatic.

(Унаследовано от MethodBase)
_MethodBase.IsVirtual

Описание этого элемента см. в разделе IsVirtual.

(Унаследовано от MethodBase)
_MethodBuilder.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

_MethodBuilder.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса.

_MethodBuilder.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

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

Предоставляет доступ к свойствам и методам, предоставляемым объектом.

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

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от MethodInfo)
_MethodInfo.GetType()

Предоставляет доступ к методу GetType() из COM.

(Унаследовано от MethodInfo)
_MethodInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Извлекает сведения о типе объекта, который можно использовать для получения сведений о типе для интерфейса.

(Унаследовано от MethodInfo)
_MethodInfo.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от MethodInfo)
_MethodInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к свойствам и методам, предоставляемым объектом.

(Унаследовано от MethodInfo)

Методы расширения

Имя Описание
GetCustomAttribute(MemberInfo, Type, Boolean)

Извлекает настраиваемый атрибут указанного типа, применяемого к указанному элементу, и при необходимости проверяет предки этого элемента.

GetCustomAttribute(MemberInfo, Type)

Извлекает настраиваемый атрибут указанного типа, применяемого к указанному элементу.

GetCustomAttribute<T>(MemberInfo, Boolean)

Извлекает настраиваемый атрибут указанного типа, применяемого к указанному элементу, и при необходимости проверяет предки этого элемента.

GetCustomAttribute<T>(MemberInfo)

Извлекает настраиваемый атрибут указанного типа, применяемого к указанному элементу.

GetCustomAttributes(MemberInfo, Boolean)

Извлекает коллекцию настраиваемых атрибутов, применяемых к указанному элементу, и при необходимости проверяет предки этого элемента.

GetCustomAttributes(MemberInfo, Type, Boolean)

Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу, и при необходимости проверяет предки этого элемента.

GetCustomAttributes(MemberInfo, Type)

Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу.

GetCustomAttributes(MemberInfo)

Извлекает коллекцию настраиваемых атрибутов, применяемых к указанному элементу.

GetCustomAttributes<T>(MemberInfo, Boolean)

Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу, и при необходимости проверяет предки этого элемента.

GetCustomAttributes<T>(MemberInfo)

Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу.

GetRuntimeBaseDefinition(MethodInfo)

Извлекает объект, представляющий указанный метод в прямом или косвенном базовом классе, где метод был впервые объявлен.

IsDefined(MemberInfo, Type, Boolean)

Указывает, применяются ли пользовательские атрибуты указанного типа к указанному элементу и, при необходимости, применяются к его предкам.

IsDefined(MemberInfo, Type)

Указывает, применяются ли пользовательские атрибуты указанного типа к указанному элементу.

Применяется к