MethodBuilder Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет и представляет метод (или конструктор) для динамического класса.
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
- Наследование
- Атрибуты
- Реализации
Примеры
В следующем примере класс используется MethodBuilder для создания метода в динамическом типе.
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
Комментарии
Дополнительные сведения об этом API см. в разделе Дополнительные примечания API для MethodBuilder.
Конструкторы
MethodBuilder() |
Инициализирует новый экземпляр класса MethodBuilder. |
Свойства
Attributes |
Извлекает атрибуты для данного метода. |
CallingConvention |
Возвращает соглашение о вызовах метода. |
ContainsGenericParameters |
Не поддерживается для этого типа. |
ContainsGenericParameters |
Получает значение, показывающее, содержит ли универсальный метод неназначенные параметры универсального типа. (Унаследовано от MethodInfo) |
CustomAttributes |
Получает коллекцию, содержащую пользовательские атрибуты этого члена. (Унаследовано от MemberInfo) |
DeclaringType |
Возвращает тип, объявляющий этот метод. |
InitLocals |
Возвращает или задает логическое значение, указывающее, инициализируются ли локальные переменные в этом методе нулевым значением. Значение по умолчанию этого свойства равно |
InitLocalsCore |
При переопределении в производном классе получает или задает значение, указывающее, инициализированы ли локальные переменные в этом методе с нуля. |
IsAbstract |
Возвращает значение, указывающее, является ли метод абстрактным. (Унаследовано от MethodBase) |
IsAssembly |
Возвращает значение, которое указывает, описана ли доступность данного метода или конструктора в поле Assembly; другими словами, этот метод или конструктор полностью доступен для других полей той же сборки и недоступен для производных типов, не включенных в сборку. (Унаследовано от MethodBase) |
IsCollectible |
Получает значение, указывающее, является ли объект MemberInfo частью сборки, содержащейся в забираемом контексте AssemblyLoadContext. (Унаследовано от MemberInfo) |
IsConstructedGenericMethod |
Определяет и представляет метод (или конструктор) для динамического класса. |
IsConstructedGenericMethod |
Определяет и представляет метод (или конструктор) для динамического класса. (Унаследовано от MethodBase) |
IsConstructor |
Возвращает значение, указывающее, является ли метод конструктором. (Унаследовано от MethodBase) |
IsFamily |
Возвращает значение, которое указывает, описана ли доступность этого метода или конструктора в поле Family; другими словами, этот метод или конструктор доступен только в своем классе и производных классах. (Унаследовано от MethodBase) |
IsFamilyAndAssembly |
Возвращает значение, которое указывает, описана ли доступность этого метода или конструктора в поле FamANDAssem; другими словами, этот метод или конструктор может вызываться в производных классах, но только в том случае, если они находятся в той же сборке. (Унаследовано от MethodBase) |
IsFamilyOrAssembly |
Возвращает значение, которое указывает, описана ли потенциальная доступность этого метода или конструктора в поле FamORAssem; другими словами, этот метод или конструктор может вызываться в производных классах независимо от их расположения, а также в классах той же сборки. (Унаследовано от MethodBase) |
IsFinal |
Возвращает значение, указывающее, является ли метод |
IsGenericMethod |
Получает значение, которое указывает, является ли метод универсальным. |
IsGenericMethod |
Возвращает значение, которое указывает, является ли текущий метод универсальным. (Унаследовано от MethodInfo) |
IsGenericMethodDefinition |
Получает значение, указывающее, представляет ли текущий объект MethodBuilder определение универсального метода. |
IsGenericMethodDefinition |
Возвращает значение, указывающее, представляет ли текущий объект MethodInfo определение универсального метода. (Унаследовано от MethodInfo) |
IsHideBySig |
Возвращает значение, указывающее, скрывается ли в производном классе только член такого же вида с точно такой же сигнатурой. (Унаследовано от MethodBase) |
IsPrivate |
Возвращает значение, указывающее, является ли этот член закрытым. (Унаследовано от MethodBase) |
IsPublic |
Возвращает значение, указывающее, является ли метод открытым. (Унаследовано от MethodBase) |
IsSecurityCritical |
Во всех случаях вызывает исключение NotSupportedException. |
IsSecurityCritical |
Получает значение, которое указывает, является ли текущий метод или конструктор критически важным для безопасности или защищенным критически важным для безопасности на данном уровне доверия и, следовательно, может ли он выполнять критические операции. (Унаследовано от MethodBase) |
IsSecuritySafeCritical |
Во всех случаях вызывает исключение NotSupportedException. |
IsSecuritySafeCritical |
Получает значение, которое указывает, является ли текущий динамический метод или конструктор защищенным критически важным для безопасности и, следовательно, может ли он выполнять критические операции и предоставлять доступ прозрачному коду. (Унаследовано от MethodBase) |
IsSecurityTransparent |
Во всех случаях вызывает исключение NotSupportedException. |
IsSecurityTransparent |
Получает значение, которое указывает, является ли текущий метод или конструктор прозрачным на текущем уровне доверия и, следовательно, не может выполнять критические операции. (Унаследовано от MethodBase) |
IsSpecialName |
Возвращает значение, указывающее, имеет ли этот метод специальное имя. (Унаследовано от MethodBase) |
IsStatic |
Получает значение, указывающее, имеет ли метод значение |
IsVirtual |
Получает значение, указывающее, имеет ли метод значение |
MemberType |
Возвращает значение MemberTypes, указывающее, что этот элемент является методом. (Унаследовано от MethodInfo) |
MetadataToken |
Получает токен, который определяет текущий динамический модуль в метаданных. |
MetadataToken |
Получает значение, определяющее элемент метаданных. (Унаследовано от MemberInfo) |
MethodHandle |
Извлекает внутренний маркер метода. Используйте этот маркер для доступа к основному дескриптору метаданных. |
MethodHandle |
Возвращает дескриптор представления внутренних метаданных метода. (Унаследовано от MethodBase) |
MethodImplementationFlags |
Определяет и представляет метод (или конструктор) для динамического класса. |
MethodImplementationFlags |
Получает флаги MethodImplAttributes, указывающие атрибуты реализации методы. (Унаследовано от MethodBase) |
Module |
Возвращает модуль, в котором определяется текущий метод. |
Module |
Получает модуль, в котором определяется тип, объявляющий член, представленный текущим объектом MemberInfo. (Унаследовано от MemberInfo) |
Name |
Извлекает имя данного метода. |
ReflectedType |
Возвращает класс, который использовался в отражении для получения этого объекта. |
ReflectedType |
Получает объект класса, который использовался для извлечения данного экземпляра объекта |
ReturnParameter |
Возвращает объект ParameterInfo, который содержит сведения о типе возвращаемого значения этого метода, например, имеет ли возвращаемый тип пользовательские модификаторы. |
ReturnParameter |
Возвращает объект ParameterInfo, который содержит сведения о типе возвращаемого значения этого метода, например, имеет ли возвращаемый тип пользовательские модификаторы. (Унаследовано от MethodInfo) |
ReturnType |
Возвращает тип возвращаемого значения метода, представленный этим MethodBuilder. |
ReturnType |
Возвращает тип, возвращаемый этим методом. (Унаследовано от MethodInfo) |
ReturnTypeCustomAttributes |
Возвращает настраиваемые атрибуты типа возвращаемого значения метода. |
ReturnTypeCustomAttributes |
Возвращает пользовательские атрибуты типа возвращаемого значения. (Унаследовано от MethodInfo) |
Signature |
Извлекает сигнатуру метода. |
Методы
AddDeclarativeSecurity(SecurityAction, PermissionSet) |
Добавляет декларативную безопасность в этот метод. |
CreateDelegate(Type) |
Создает делегат заданного типа из этого метода. (Унаследовано от MethodInfo) |
CreateDelegate(Type, Object) |
Создает делегат заданного типа с заданным целевым объектом из этого метода. (Унаследовано от MethodInfo) |
CreateDelegate<T>() |
Создает делегат типа |
CreateDelegate<T>(Object) |
Создает делегат типа |
CreateMethodBody(Byte[], Int32) |
Создает тело метода с использованием предоставленного массива байтов инструкций промежуточного языка Майкрософт (MSIL). |
DefineGenericParameters(String[]) |
Задает количество параметров универсального типа для текущего метода, указывает их имена и возвращает массив объектов GenericTypeParameterBuilder, которые можно использовать для определения их ограничений. |
DefineGenericParametersCore(String[]) |
При переопределении в производном классе задает количество параметров универсального типа для текущего метода, задает их имена и возвращает массив GenericTypeParameterBuilder объектов, которые можно использовать для определения ограничений. |
DefineParameter(Int32, ParameterAttributes, String) |
Задает атрибуты параметров и имя параметра этого метода или возвращаемого значения данного метода. Возвращает ParameterBuilder, который можно использовать для применения настраиваемых атрибутов. |
DefineParameterCore(Int32, ParameterAttributes, String) |
При переопределении в производном классе определяет параметр или возвращаемый параметр для этого метода. |
Equals(Object) |
Определяет, равен ли данный объект этому экземпляру. |
GetBaseDefinition() |
Возвращает базовую реализацию метода. |
GetBaseDefinition() |
Если переопределено в производном классе, возвращает объект MethodInfo для метода в прямом или косвенном базовом классе, в котором был первоначально объявлен метод, предоставляемый этим экземпляром. (Унаследовано от MethodInfo) |
GetCustomAttributes(Boolean) |
Возвращает все настраиваемые атрибуты, определенные для данного метода. |
GetCustomAttributes(Boolean) |
При переопределении в производном классе возвращает массив всех настраиваемых атрибутов, примененных к данному члену. (Унаследовано от MemberInfo) |
GetCustomAttributes(Type, Boolean) |
Возвращает настраиваемые атрибуты, определяемые заданным типом. |
GetCustomAttributes(Type, Boolean) |
При переопределении в производном классе возвращает массив настраиваемых атрибутов, применяемых к этому элементу и определяемых параметром Type. (Унаследовано от MemberInfo) |
GetCustomAttributesData() |
Возвращает список объектов CustomAttributeData, представляющих данные об атрибутах, примененных к целевому элементу. (Унаследовано от MemberInfo) |
GetGenericArguments() |
Возвращает массив объектов GenericTypeParameterBuilder, которые представляют параметры типа для метода, если он является универсальным. |
GetGenericArguments() |
Возвращает массив объектов Type, которые представляют аргументы универсального метода, относящиеся к типу, или параметры типа определения универсального метода. (Унаследовано от MethodInfo) |
GetGenericMethodDefinition() |
Возвращает этот метод. |
GetGenericMethodDefinition() |
Возвращает объект MethodInfo, представляющий определение универсального метода, на основе которого можно сконструировать текущий метод. (Унаследовано от MethodInfo) |
GetHashCode() |
Возвращает хэш-код для этого метода. |
GetILGenerator() |
Возвращает |
GetILGenerator(Int32) |
Возвращает |
GetILGeneratorCore(Int32) |
При переопределении в производном классе получает ILGenerator объект , который можно использовать для создания тела метода для этого метода. |
GetMethodBody() |
При переопределении в производном классе возвращает объект MethodBody, который обеспечивает доступ к потоку MSIL, локальным переменным и исключениям для текущего метода. (Унаследовано от MethodBase) |
GetMethodImplementationFlags() |
Возвращает флаги реализации для метода. |
GetMethodImplementationFlags() |
При переопределении в производном классе возвращает новые флаги MethodImplAttributes. (Унаследовано от MethodBase) |
GetModule() |
Возвращает ссылку на модуль, содержащий этот метод. |
GetParameters() |
Возвращает параметры данного метода. |
GetToken() |
Возвращает объект |
GetType() |
Выявляет атрибуты метода и обеспечивает доступ к его метаданным. (Унаследовано от MethodInfo) |
HasSameMetadataDefinitionAs(MemberInfo) |
Определяет и представляет метод (или конструктор) для динамического класса. (Унаследовано от MemberInfo) |
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) |
Динамически вызывает метод, отраженный этим экземпляром для данного объекта, передавая указанные параметры и учитывая ограничения данного модуля привязки. |
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) |
При переопределении в производном классе вызывает отражаемый метод или конструктор с заданными параметрами. (Унаследовано от MethodBase) |
Invoke(Object, Object[]) |
Вызывает метод или конструктор, представленный текущим экземпляром, используя указанные параметры. (Унаследовано от MethodInfo) |
IsDefined(Type, Boolean) |
Проверяет, определен ли заданный тип настраиваемого атрибута. |
IsDefined(Type, Boolean) |
При переопределении в производном классе указывает, применяются ли для этого члена один или несколько атрибутов заданного типа или его производных типов. (Унаследовано от MemberInfo) |
MakeGenericMethod(Type[]) |
Возвращает универсальный метод, построенный на основе определения текущего универсального метода с использованием указанных аргументов универсального типа. |
MakeGenericMethod(Type[]) |
Заменяет параметры типа элементами массива типов для определения текущего универсального метода и возвращает объект MethodInfo, представляющий итоговый сконструированный метод. (Унаследовано от MethodInfo) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
SetCustomAttribute(ConstructorInfo, Byte[]) |
Задает настраиваемый атрибут с помощью большого двоичного объекта пользовательских атрибутов. |
SetCustomAttribute(CustomAttributeBuilder) |
Задает настраиваемый атрибут с помощью построителя настраиваемых атрибутов. |
SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>) |
При переопределении в производном классе задает настраиваемый атрибут для этой сборки. |
SetImplementationFlags(MethodImplAttributes) |
Задает флаги реализации для этого метода. |
SetImplementationFlagsCore(MethodImplAttributes) |
При переопределении в производном классе задает флаги реализации для этого метода. |
SetMarshal(UnmanagedMarshal) |
Устаревшие..
Задает сведения о маршалинге для типа возвращаемого значения этого метода. |
SetMethodBody(Byte[], Int32, Byte[], IEnumerable<ExceptionHandler>, IEnumerable<Int32>) |
Создает тело метода с использованием указанного массива байтов инструкций промежуточного языка Майкрософт (MSIL). |
SetParameters(Type[]) |
Задает количество и типы параметров для метода. |
SetReturnType(Type) |
Задает тип возвращаемого значения метода. |
SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) |
Задает сигнатуру метода, включая возвращаемый тип, типы параметров, а также обязательные и необязательные настраиваемые модификаторы для возвращаемого типа и типов параметров. |
SetSignatureCore(Type, Type[], Type[], Type[], Type[][], Type[][]) |
При переопределении в производном классе задает сигнатуру метода, включая тип возвращаемого значения, типы параметров, а также обязательные и необязательные настраиваемые модификаторы возвращаемого типа и типов параметров. |
SetSymCustomAttribute(String, Byte[]) |
Задает символьный настраиваемый атрибут с помощью большого двоичного объекта. |
ToString() |
Возвращает этот экземпляр |
Явные реализации интерфейса
_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) |
ICustomAttributeProvider.GetCustomAttributes(Boolean) |
Возвращает массив всех настраиваемых атрибутов, определенных для этого элемента, за исключением именованных атрибутов, или пустой массив, если атрибуты отсутствуют. (Унаследовано от MemberInfo) |
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) |
Возвращает массив настраиваемых атрибутов, определенных для этого элемента с учетом типа, или пустой массив, если отсутствуют настраиваемые атрибуты определенного типа. (Унаследовано от MemberInfo) |
ICustomAttributeProvider.IsDefined(Type, Boolean) |
Указывает, сколько экземпляров |
Методы расширения
GetCustomAttribute(MemberInfo, Type) |
Извлекает пользовательский атрибут заданного типа, примененный к указанному элементу. |
GetCustomAttribute(MemberInfo, Type, Boolean) |
Извлекает настраиваемый атрибут указанного типа, который применяется к указанному элементу и, при необходимости, проверяет предков этого элемента. |
GetCustomAttribute<T>(MemberInfo) |
Извлекает пользовательский атрибут заданного типа, примененный к указанному элементу. |
GetCustomAttribute<T>(MemberInfo, Boolean) |
Извлекает настраиваемый атрибут указанного типа, который применяется к указанному элементу и, при необходимости, проверяет предков этого элемента. |
GetCustomAttributes(MemberInfo) |
Извлекает коллекцию настраиваемых атрибутов, примененных к указанному члену. |
GetCustomAttributes(MemberInfo, Boolean) |
Извлекает коллекцию пользовательских атрибутов, которые применяются к указанному элементу и, при необходимости, проверяет предков этого элемента. |
GetCustomAttributes(MemberInfo, Type) |
Извлекает коллекцию пользовательских атрибутов заданного типа, примененных к указанному элементу. |
GetCustomAttributes(MemberInfo, Type, Boolean) |
Извлекает коллекцию пользовательских атрибутов указанного типа, которые применяется к указанному элементу и, при необходимости, проверяет предков этого элемента. |
GetCustomAttributes<T>(MemberInfo) |
Извлекает коллекцию пользовательских атрибутов заданного типа, примененных к указанному элементу. |
GetCustomAttributes<T>(MemberInfo, Boolean) |
Извлекает коллекцию пользовательских атрибутов указанного типа, которые применяется к указанному элементу и, при необходимости, проверяет предков этого элемента. |
IsDefined(MemberInfo, Type) |
Указывает, применены ли какие-либо пользовательские атрибуты заданного типа к указанному члену. |
IsDefined(MemberInfo, Type, Boolean) |
Указывает применены ли настраиваемые атрибуты указанного типа к указанному элементу и, при необходимости, применены ли они к его предкам. |
GetMetadataToken(MemberInfo) |
Возвращает маркер метаданных для заданного элемента, если он доступен. |
HasMetadataToken(MemberInfo) |
Возвращает значение, указывающее, доступен ли маркер метаданных для указанного элемента. |
GetBaseDefinition(MethodInfo) |
Определяет и представляет метод (или конструктор) для динамического класса. |
GetRuntimeBaseDefinition(MethodInfo) |
Извлекает объект, представляющий указанный метода в прямом или косвенном базовом классе, где он был первоначально объявлен. |