MethodBuilder Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет и представляет метод (или конструктор) в динамическом классе.
public ref class MethodBuilder abstract : System::Reflection::MethodInfo
public ref class MethodBuilder sealed : System::Reflection::MethodInfo
public ref class MethodBuilder sealed : System::Reflection::MethodInfo, System::Runtime::InteropServices::_MethodBuilder
public abstract class MethodBuilder : System.Reflection.MethodInfo
public sealed 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 MustInherit Class MethodBuilder
Inherits MethodInfo
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Implements _MethodBuilder
- Наследование
- Атрибуты
- Реализации
Примеры
В следующем примере класс используется 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
Комментарии
Класс MethodBuilder используется для полного описания метода в общем промежуточном языке (CIL), включая имя, атрибуты, сигнатуру и текст метода. Он используется в сочетании с классом TypeBuilder для создания классов во время выполнения.
Вы можете использовать отражение для определения глобальных методов и определения методов в качестве элементов типа. API, которые определяют методы, возвращающие объекты MethodBuilder .
Глобальные методы
Глобальный метод определяется с помощью ModuleBuilder.DefineGlobalMethod метода, который возвращает MethodBuilder объект.
Глобальные методы должны быть статическими. Если динамический модуль содержит глобальные методы, ModuleBuilder.CreateGlobalFunctions метод необходимо вызвать перед сохранением динамического модуля или содержащей динамической сборки, так как среда CLR откладывает исправление динамического модуля до тех пор, пока не будут определены все глобальные функции.
Глобальный собственный метод определяется с помощью ModuleBuilder.DefinePInvokeMethod метода. Методы вызова платформы (PInvoke) не должны объявляться абстрактными или виртуальными. Среда выполнения задает атрибут MethodAttributes.PinvokeImpl для метода Platform Invocation.
Методы как элементы типов
Метод определяется как член типа с помощью TypeBuilder.DefineMethod метода, который возвращает MethodBuilder объект.
Метод DefineParameter используется для задания атрибутов имени и параметров параметра или возвращаемого значения. Объект, ParameterBuilder возвращаемый этим методом, представляет параметр или возвращаемое значение. Объект ParameterBuilder можно использовать для задания маршалинга, задания константного значения и применения пользовательских атрибутов.
Attributes
MethodAttributes Члены перечисления определяют точный характер динамического метода.
- Статические методы задаются с помощью атрибута MethodAttributes.Static .
- Конечные методы (методы, которые не могут быть переопределены) задаются с помощью атрибута MethodAttributes.Final .
- Виртуальные методы задаются с помощью атрибута MethodAttributes.Virtual .
- Абстрактные методы задаются с помощью атрибута MethodAttributes.Abstract .
- Несколько атрибутов определяют видимость метода. См. описание перечисления MethodAttributes .
- Методы, реализующие перегруженные операторы, должны задать MethodAttributes.SpecialName атрибут.
- Финализаторы должны задать атрибут MethodAttributes.SpecialName.
Известные проблемы
- Хотя MethodBuilder происходит от MethodInfo, некоторые абстрактные методы, определенные в классе MethodInfo, не полностью реализованы в MethodBuilder. Эти методы MethodBuilder генерируют NotSupportedException исключение. Например, MethodBuilder.Invoke метод не полностью реализован. Вы можете размышлять о этих методах, извлекая вложенный тип с помощью методов Type.GetType или Assembly.GetType.
- Поддерживаются пользовательские модификаторы.
Конструкторы
| Имя | Описание |
|---|---|
| MethodBuilder() |
Инициализирует новый экземпляр класса MethodBuilder. |
Свойства
| Имя | Описание |
|---|---|
| Attributes |
Извлекает атрибуты для этого метода. |
| CallingConvention |
Возвращает соглашение о вызове метода. |
| ContainsGenericParameters |
Не поддерживается для этого типа. |
| 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 |
Возвращает значение, указывающее, является ли метод универсальным методом. |
| IsGenericMethodDefinition |
Возвращает значение, указывающее, представляет ли текущий MethodBuilder объект определение универсального метода. |
| 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 |
Извлекает внутренний дескриптор для метода. Используйте этот дескриптор для доступа к базовому дескриптору метаданных. |
| MethodImplementationFlags |
Определяет и представляет метод (или конструктор) в динамическом классе. |
| MethodImplementationFlags |
Возвращает флаги, указывающие MethodImplAttributes атрибуты реализации метода. (Унаследовано от MethodBase) |
| Module |
Возвращает модуль, в котором определен текущий метод. |
| Module |
Возвращает модуль, в котором определяется тип, объявляющий элемент, представленный текущим MemberInfo . (Унаследовано от MemberInfo) |
| Name |
Извлекает имя этого метода. |
| ReflectedType |
Извлекает класс, используемый в отражении для получения этого объекта. |
| ReturnParameter |
ParameterInfo Возвращает объект, содержащий сведения о возвращаемом типе метода, например, имеет ли тип возвращаемого типа настраиваемые модификаторы. |
| ReturnType |
Возвращает возвращаемый тип метода, представленного этим MethodBuilderметодом. |
| ReturnType |
Возвращает тип возвращаемого значения этого метода. (Унаследовано от MethodInfo) |
| ReturnTypeCustomAttributes |
Возвращает настраиваемые атрибуты возвращаемого типа метода. |
| ReturnTypeCustomAttributes |
Возвращает настраиваемые атрибуты для возвращаемого типа. (Унаследовано от MethodInfo) |
| Signature |
Извлекает сигнатуру метода. |
Методы
| Имя | Описание |
|---|---|
| AddDeclarativeSecurity(SecurityAction, PermissionSet) |
Добавляет декларативную безопасность в этот метод. |
| CreateDelegate(Type, Object) |
Создает делегат указанного типа с указанным целевым объектом из этого метода. (Унаследовано от MethodInfo) |
| CreateDelegate(Type) |
Создает делегат указанного типа из этого метода. (Унаследовано от MethodInfo) |
| CreateDelegate<T>() |
Создает делегат типа |
| CreateDelegate<T>(Object) |
Создает делегат типа |
| CreateMethodBody(Byte[], Int32) |
Создает текст метода с помощью предоставленного массива байтов Microsoft инструкций по промежуточному языку (MSIL). |
| DefineGenericParameters(String[]) |
Задает число параметров универсального типа для текущего метода, задает их имена и возвращает массив объектов, которые можно использовать для определения ограничений GenericTypeParameterBuilder . |
| DefineGenericParametersCore(String[]) |
При переопределении в производном классе задает количество параметров универсального типа для текущего метода, задает их имена и возвращает массив объектов, которые можно использовать для определения ограничений GenericTypeParameterBuilder . |
| DefineParameter(Int32, ParameterAttributes, String) |
Задает атрибуты параметров и имя параметра этого метода или возвращаемое значение этого метода. Возвращает параметрBuilder, который можно использовать для применения пользовательских атрибутов. |
| DefineParameterCore(Int32, ParameterAttributes, String) |
При переопределении в производном классе определяет параметр или возвращаемый параметр для этого метода. |
| Equals(Object) |
Определяет, равен ли данный объект этому экземпляру. |
| GetBaseDefinition() |
Возвращает базовую реализацию для метода. |
| GetBaseDefinition() |
При переопределении в производном классе возвращает MethodInfo объект для метода прямого или косвенного базового класса, в котором метод, представленный этим экземпляром, был впервые объявлен. (Унаследовано от MethodInfo) |
| GetCustomAttributes(Boolean) |
Возвращает все пользовательские атрибуты, определенные для этого метода. |
| GetCustomAttributes(Type, Boolean) |
Возвращает настраиваемые атрибуты, определяемые заданным типом. |
| GetCustomAttributesData() |
Возвращает список CustomAttributeData объектов, представляющих данные о атрибутах, примененных к целевому элементу. (Унаследовано от MemberInfo) |
| GetGenericArguments() |
Возвращает массив GenericTypeParameterBuilder объектов, представляющих параметры типа метода, если он является универсальным. |
| GetGenericMethodDefinition() |
Возвращает этот метод. |
| 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, Object[]) |
Вызывает метод или конструктор, представленный текущим экземпляром, с помощью указанных параметров. (Унаследовано от MethodInfo) |
| IsDefined(Type, Boolean) |
Проверяет, определен ли указанный пользовательский тип атрибута. |
| MakeGenericMethod(Type[]) |
Возвращает универсальный метод, созданный из текущего определения универсального метода с помощью указанных аргументов универсального типа. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| SetCustomAttribute(ConstructorInfo, Byte[]) |
Задает настраиваемый атрибут с помощью указанного пользовательского BLOB-объекта атрибута. |
| SetCustomAttribute(CustomAttributeBuilder) |
Задает пользовательский атрибут с помощью построителя настраиваемых атрибутов. |
| SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>) |
При переопределении в производном классе задает настраиваемый атрибут для этой сборки. |
| SetImplementationFlags(MethodImplAttributes) |
Задает флаги реализации для этого метода. |
| SetImplementationFlagsCore(MethodImplAttributes) |
При переопределении в производном классе задает флаги реализации для этого метода. |
| SetMarshal(UnmanagedMarshal) |
Устаревшие.
Задает сведения о маршалинге для возвращаемого типа этого метода. |
| SetMethodBody(Byte[], Int32, Byte[], IEnumerable<ExceptionHandler>, IEnumerable<Int32>) |
Создает текст метода с помощью указанного массива байтов Microsoft инструкций по промежуточному языку (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) |
Указывает, определен ли один или несколько экземпляров |
Методы расширения
| Имя | Описание |
|---|---|
| GetBaseDefinition(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) |
Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу. |
| GetMetadataToken(MemberInfo) |
Возвращает маркер метаданных для данного члена, если он доступен. |
| GetRuntimeBaseDefinition(MethodInfo) |
Извлекает объект, представляющий указанный метод в прямом или косвенном базовом классе, где метод был впервые объявлен. |
| HasMetadataToken(MemberInfo) |
Возвращает значение, указывающее, доступен ли маркер метаданных для указанного элемента. |
| IsDefined(MemberInfo, Type, Boolean) |
Указывает, применяются ли пользовательские атрибуты указанного типа к указанному элементу и, при необходимости, применяются к его предкам. |
| IsDefined(MemberInfo, Type) |
Указывает, применяются ли пользовательские атрибуты указанного типа к указанному элементу. |