ConstructorInfo Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обнаруживает атрибуты конструктора класса и предоставляет доступ к метаданным конструктора.
public ref class ConstructorInfo abstract : System::Reflection::MethodBase
public ref class ConstructorInfo abstract : System::Reflection::MethodBase, System::Runtime::InteropServices::_ConstructorInfo
public abstract class ConstructorInfo : System.Reflection.MethodBase
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public abstract class ConstructorInfo : System.Reflection.MethodBase, System.Runtime.InteropServices._ConstructorInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class ConstructorInfo : System.Reflection.MethodBase, System.Runtime.InteropServices._ConstructorInfo
type ConstructorInfo = class
inherit MethodBase
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
type ConstructorInfo = class
inherit MethodBase
interface _ConstructorInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ConstructorInfo = class
inherit MethodBase
interface _ConstructorInfo
Public MustInherit Class ConstructorInfo
Inherits MethodBase
Public MustInherit Class ConstructorInfo
Inherits MethodBase
Implements _ConstructorInfo
- Наследование
- Производный
- Атрибуты
- Реализации
Примеры
В следующем примере используется ConstructorInfo
с GetConstructor и BindingFlags для поиска конструкторов, соответствующих указанным условиям поиска.
using namespace System;
using namespace System::Reflection;
using namespace System::Security;
public ref class MyClass1
{
public:
MyClass1( int i ){}
};
int main()
{
try
{
Type^ myType = MyClass1::typeid;
array<Type^>^types = gcnew array<Type^>(1);
types[ 0 ] = int::typeid;
// Get the public instance constructor that takes an integer parameter.
ConstructorInfo^ constructorInfoObj = myType->GetConstructor( static_cast<BindingFlags>(BindingFlags::Instance | BindingFlags::Public), nullptr, CallingConventions::HasThis, types, nullptr );
if ( constructorInfoObj != nullptr )
{
Console::WriteLine( "The constructor of MyClass1 that is a public instance method and takes an integer as a parameter is: " );
Console::WriteLine( constructorInfoObj );
}
else
{
Console::WriteLine( "The constructor of MyClass1 that is a public instance method and takes an integer as a parameter is not available." );
}
}
catch ( ArgumentNullException^ e )
{
Console::WriteLine( "ArgumentNullException: {0}", e->Message );
}
catch ( ArgumentException^ e )
{
Console::WriteLine( "ArgumentException: {0}", e->Message );
}
catch ( SecurityException^ e )
{
Console::WriteLine( "SecurityException: {0}", e->Message );
}
catch ( Exception^ e )
{
Console::WriteLine( "Exception: {0}", e->Message );
}
}
using System;
using System.Reflection;
using System.Security;
public class MyClass3
{
public MyClass3(int i) { }
public static void Main()
{
try
{
Type myType = typeof(MyClass3);
Type[] types = new Type[1];
types[0] = typeof(int);
// Get the public instance constructor that takes an integer parameter.
ConstructorInfo constructorInfoObj = myType.GetConstructor(
BindingFlags.Instance | BindingFlags.Public, null,
CallingConventions.HasThis, types, null);
if (constructorInfoObj != null)
{
Console.WriteLine("The constructor of MyClass3 that is a public " +
"instance method and takes an integer as a parameter is: ");
Console.WriteLine(constructorInfoObj.ToString());
}
else
{
Console.WriteLine("The constructor of MyClass3 that is a public instance " +
"method and takes an integer as a parameter is not available.");
}
}
catch (ArgumentNullException e)
{
Console.WriteLine("ArgumentNullException: " + e.Message);
}
catch (ArgumentException e)
{
Console.WriteLine("ArgumentException: " + e.Message);
}
catch (SecurityException e)
{
Console.WriteLine("SecurityException: " + e.Message);
}
catch (Exception e)
{
Console.WriteLine("Exception: " + e.Message);
}
}
}
Public Class MyClass1
Public Sub New(ByVal i As Integer)
End Sub
Public Shared Sub Main()
Try
Dim myType As Type = GetType(MyClass1)
Dim types(0) As Type
types(0) = GetType(Integer)
' Get the public instance constructor that takes an integer parameter.
Dim constructorInfoObj As ConstructorInfo = _
myType.GetConstructor(BindingFlags.Instance Or _
BindingFlags.Public, Nothing, _
CallingConventions.HasThis, types, Nothing)
If Not (constructorInfoObj Is Nothing) Then
Console.WriteLine("The constructor of MyClass1 that " + _
"is a public instance method and takes an " + _
"integer as a parameter is: ")
Console.WriteLine(constructorInfoObj.ToString())
Else
Console.WriteLine("The constructor MyClass1 that " + _
"is a public instance method and takes an " + _
"integer as a parameter is not available.")
End If
Catch e As ArgumentNullException
Console.WriteLine("ArgumentNullException: " + e.Message)
Catch e As ArgumentException
Console.WriteLine("ArgumentException: " + e.Message)
Catch e As SecurityException
Console.WriteLine("SecurityException: " + e.Message)
Catch e As Exception
Console.WriteLine("Exception: " + e.Message)
End Try
End Sub
End Class
Комментарии
ConstructorInfo
используется для обнаружения атрибутов конструктора, а также для вызова конструктора. Объекты создаются путем вызова Invoke объекта , ConstructorInfo
возвращаемого методом GetConstructorsType или GetConstructor объекта .
Примечание
ConstructorInfo наследует от MethodBase нескольких членов, таких как IsGenericMethod, которые можно использовать для проверки универсальных методов. В платформа .NET Framework версии 2.0 конструкторы не могут быть универсальными, поэтому эти элементы возвращают false
или null
.
Примечания для тех, кто реализует этот метод
При наследовании от ConstructorInfo
необходимо переопределить следующую перегрузку элемента: Invoke(BindingFlags, Binder, Object[], CultureInfo).
Конструкторы
ConstructorInfo() |
Инициализирует новый экземпляр класса ConstructorInfo. |
Поля
ConstructorName |
Представляет хранящееся в метаданных имя метода конструктора класса. Это имя всегда имеет расширение CTOR. Это поле доступно только для чтения. |
TypeConstructorName |
Представляет хранящееся в метаданных имя метода конструктора типа. Это имя всегда имеет расширение CCTOR. Это свойство доступно только для чтения. |
Свойства
Attributes |
Возвращает атрибуты, сопоставленные этому методу. (Унаследовано от MethodBase) |
CallingConvention |
Возвращает значение, показывающее соглашения о вызовах для этого метода. (Унаследовано от MethodBase) |
ContainsGenericParameters |
Возвращает значение, указывающее, содержит ли универсальный метод не присвоенные параметры универсального типа. (Унаследовано от MethodBase) |
CustomAttributes |
Получает коллекцию, содержащую пользовательские атрибуты этого члена. (Унаследовано от MemberInfo) |
DeclaringType |
Получает класс, объявляющий этот член. (Унаследовано от MemberInfo) |
IsAbstract |
Возвращает значение, указывающее, является ли метод абстрактным. (Унаследовано от MethodBase) |
IsAssembly |
Возвращает значение, которое указывает, описана ли доступность данного метода или конструктора в поле Assembly; другими словами, этот метод или конструктор полностью доступен для других полей той же сборки и недоступен для производных типов, не включенных в сборку. (Унаследовано от MethodBase) |
IsCollectible |
Получает значение, указывающее, является ли объект MemberInfo частью сборки, содержащейся в забираемом контексте AssemblyLoadContext. (Унаследовано от MemberInfo) |
IsConstructedGenericMethod |
Обнаруживает атрибуты конструктора класса и предоставляет доступ к метаданным конструктора. (Унаследовано от MethodBase) |
IsConstructor |
Возвращает значение, указывающее, является ли метод конструктором. (Унаследовано от MethodBase) |
IsFamily |
Возвращает значение, которое указывает, описана ли доступность этого метода или конструктора в поле Family; другими словами, этот метод или конструктор доступен только в своем классе и производных классах. (Унаследовано от MethodBase) |
IsFamilyAndAssembly |
Возвращает значение, которое указывает, описана ли доступность этого метода или конструктора в поле FamANDAssem; другими словами, этот метод или конструктор может вызываться в производных классах, но только в том случае, если они находятся в той же сборке. (Унаследовано от MethodBase) |
IsFamilyOrAssembly |
Возвращает значение, которое указывает, описана ли потенциальная доступность этого метода или конструктора в поле FamORAssem; другими словами, этот метод или конструктор может вызываться в производных классах независимо от их расположения, а также в классах той же сборки. (Унаследовано от MethodBase) |
IsFinal |
Возвращает значение, указывающее, является ли метод |
IsGenericMethod |
Возвращает значение, указывающее, является ли этот метод универсальным. (Унаследовано от MethodBase) |
IsGenericMethodDefinition |
Возвращает значение, указывающее, является ли этот метод определением универсального метода. (Унаследовано от MethodBase) |
IsHideBySig |
Возвращает значение, указывающее, скрывается ли в производном классе только член такого же вида с точно такой же сигнатурой. (Унаследовано от MethodBase) |
IsPrivate |
Возвращает значение, указывающее, является ли этот член закрытым. (Унаследовано от MethodBase) |
IsPublic |
Возвращает значение, указывающее, является ли метод открытым. (Унаследовано от MethodBase) |
IsSecurityCritical |
Получает значение, которое указывает, является ли текущий метод или конструктор критически важным для безопасности или защищенным критически важным для безопасности на данном уровне доверия и, следовательно, может ли он выполнять критические операции. (Унаследовано от MethodBase) |
IsSecuritySafeCritical |
Получает значение, которое указывает, является ли текущий динамический метод или конструктор защищенным критически важным для безопасности и, следовательно, может ли он выполнять критические операции и предоставлять доступ прозрачному коду. (Унаследовано от MethodBase) |
IsSecurityTransparent |
Получает значение, которое указывает, является ли текущий метод или конструктор прозрачным на текущем уровне доверия и, следовательно, не может выполнять критические операции. (Унаследовано от MethodBase) |
IsSpecialName |
Возвращает значение, указывающее, имеет ли этот метод специальное имя. (Унаследовано от MethodBase) |
IsStatic |
Получает значение, указывающее, имеет ли метод значение |
IsVirtual |
Получает значение, указывающее, имеет ли метод значение |
MemberType |
Возвращает значение MemberTypes, указывающее, что этот элемент является конструктором. |
MemberType |
При переопределении в производном классе получает значение MemberTypes, определяющее тип члена: метод, конструктор, событие и так далее. (Унаследовано от MemberInfo) |
MetadataToken |
Получает значение, определяющее элемент метаданных. (Унаследовано от MemberInfo) |
MethodHandle |
Возвращает дескриптор представления внутренних метаданных метода. (Унаследовано от MethodBase) |
MethodImplementationFlags |
Получает флаги MethodImplAttributes, указывающие атрибуты реализации методы. (Унаследовано от MethodBase) |
Module |
Получает модуль, в котором определяется тип, объявляющий член, представленный текущим объектом MemberInfo. (Унаследовано от MemberInfo) |
Name |
Возвращает имя текущего члена. (Унаследовано от MemberInfo) |
ReflectedType |
Получает объект класса, который использовался для извлечения данного экземпляра объекта |
Методы
Equals(Object) |
Возвращает значение, показывающее, равен ли экземпляр указанному объекту. |
Equals(Object) |
Возвращает значение, показывающее, равен ли экземпляр указанному объекту. (Унаследовано от MethodBase) |
GetCustomAttributes(Boolean) |
При переопределении в производном классе возвращает массив всех настраиваемых атрибутов, примененных к данному члену. (Унаследовано от MemberInfo) |
GetCustomAttributes(Type, Boolean) |
При переопределении в производном классе возвращает массив настраиваемых атрибутов, применяемых к этому элементу и определяемых параметром Type. (Унаследовано от MemberInfo) |
GetCustomAttributesData() |
Возвращает список объектов CustomAttributeData, представляющих данные об атрибутах, примененных к целевому элементу. (Унаследовано от MemberInfo) |
GetGenericArguments() |
Возвращает массив объектов Type, которые представляют аргументы универсального метода, относящиеся к типу, или параметры типа определения универсального метода. (Унаследовано от MethodBase) |
GetHashCode() |
Возвращает хэш-код данного экземпляра. |
GetHashCode() |
Возвращает хэш-код данного экземпляра. (Унаследовано от MethodBase) |
GetMethodBody() |
При переопределении в производном классе возвращает объект MethodBody, который обеспечивает доступ к потоку MSIL, локальным переменным и исключениям для текущего метода. (Унаследовано от MethodBase) |
GetMethodImplementationFlags() |
При переопределении в производном классе возвращает новые флаги MethodImplAttributes. (Унаследовано от MethodBase) |
GetParameters() |
При переопределении в производном классе возвращает параметры заданного метода или конструктора. (Унаследовано от MethodBase) |
GetType() |
Обнаруживает атрибуты конструктора класса и предоставляет доступ к метаданным конструктора. |
GetType() |
Обнаруживает атрибуты конструктора класса и предоставляет доступ к метаданным конструктора. (Унаследовано от MethodBase) |
HasSameMetadataDefinitionAs(MemberInfo) |
Обнаруживает атрибуты конструктора класса и предоставляет доступ к метаданным конструктора. (Унаследовано от MemberInfo) |
Invoke(BindingFlags, Binder, Object[], CultureInfo) |
При реализации в производном классе вызывает конструктор, отраженный этим объектом |
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) |
При переопределении в производном классе вызывает отражаемый метод или конструктор с заданными параметрами. (Унаследовано от MethodBase) |
Invoke(Object, Object[]) |
Вызывает метод или конструктор, представленный текущим экземпляром, используя указанные параметры. (Унаследовано от MethodBase) |
Invoke(Object[]) |
Вызывает конструктор, который определяется экземпляром с указанными параметрами, чтобы этим параметрам присваивались стандартные значения, которые используются нечасто. |
IsDefined(Type, Boolean) |
При переопределении в производном классе указывает, применяются ли для этого члена один или несколько атрибутов заданного типа или его производных типов. (Унаследовано от MemberInfo) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Операторы
Equality(ConstructorInfo, ConstructorInfo) |
Определение равенства двух объектов ConstructorInfo. |
Inequality(ConstructorInfo, ConstructorInfo) |
Определяет неравенство двух объектов ConstructorInfo. |
Явные реализации интерфейса
_ConstructorInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. |
_ConstructorInfo.GetType() |
Возвращает объект Type, представляющий тип ConstructorInfo. |
_ConstructorInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса. |
_ConstructorInfo.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). |
_ConstructorInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. |
_ConstructorInfo.Invoke_2(Object, BindingFlags, Binder, Object[], CultureInfo) |
Предоставляет COM-объекты с независящим от версии доступом к методу Invoke(Object, BindingFlags, Binder, Object[], CultureInfo). |
_ConstructorInfo.Invoke_3(Object, Object[]) |
Предоставляет COM-объекты с независящим от версии доступом к методу Invoke(Object, Object[]). |
_ConstructorInfo.Invoke_4(BindingFlags, Binder, Object[], CultureInfo) |
Предоставляет COM-объекты с независящим от версии доступом к методу Invoke(BindingFlags, Binder, Object[], CultureInfo). |
_ConstructorInfo.Invoke_5(Object[]) |
Предоставляет COM-объекты с независящим от версии доступом к методу Invoke(Object[]). |
_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) |
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) |
Возвращает значение, указывающее, доступен ли маркер метаданных для указанного элемента. |
Применяется к
Потокобезопасность
Данный тип потокобезопасен.