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 конструкторы, GetConstructorBindingFlags соответствующие указанным критериям поиска.
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 возвращаемого GetConstructors объектом или GetConstructor методаType.
Note
ConstructorInfo наследует от MethodBase нескольких членов, таких как IsGenericMethod, которые можно использовать для проверки универсальных методов. В конструкторах платформы .NET версии 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 Возвращает значение, указывающее, что этот элемент является конструктором. |
| MetadataToken |
Возвращает значение, определяющее элемент метаданных. (Унаследовано от MemberInfo) |
| MethodHandle |
Возвращает дескриптор внутреннего представления метаданных метода. (Унаследовано от MethodBase) |
| MethodImplementationFlags |
Возвращает флаги, указывающие MethodImplAttributes атрибуты реализации метода. (Унаследовано от MethodBase) |
| Module |
Возвращает модуль, в котором определяется тип, объявляющий элемент, представленный текущим MemberInfo . (Унаследовано от MemberInfo) |
| Name |
Возвращает имя текущего элемента. (Унаследовано от MemberInfo) |
| ReflectedType |
Возвращает объект класса, используемый для получения этого экземпляра |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. |
| GetCustomAttributes(Boolean) |
При переопределении в производном классе возвращает массив всех пользовательских атрибутов, примененных к этому элементу. (Унаследовано от MemberInfo) |
| GetCustomAttributes(Type, Boolean) |
При переопределении в производном классе возвращает массив пользовательских атрибутов, применяемых к этому элементу, и определяется с помощью Type. (Унаследовано от MemberInfo) |
| GetCustomAttributesData() |
Возвращает список CustomAttributeData объектов, представляющих данные о атрибутах, примененных к целевому элементу. (Унаследовано от MemberInfo) |
| GetGenericArguments() |
Возвращает массив Type объектов, представляющих аргументы типа универсального метода или параметры типа определения универсального метода. (Унаследовано от MethodBase) |
| GetHashCode() |
Возвращает хэш-код для этого экземпляра. |
| GetMethodBody() |
При переопределении в производном классе получает MethodBody объект, предоставляющий доступ к потоку MSIL, локальным переменным и исключениям для текущего метода. (Унаследовано от MethodBase) |
| GetMethodImplementationFlags() |
При переопределении в производном классе возвращает MethodImplAttributes флаги. (Унаследовано от MethodBase) |
| GetParameters() |
При переопределении в производном классе получает параметры указанного метода или конструктора. (Унаследовано от MethodBase) |
| GetType() |
Обнаруживает атрибуты конструктора класса и предоставляет доступ к метаданным конструктора. |
| 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_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[]) , независимо от версии. |
| _ConstructorInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к свойствам и методам, предоставляемым объектом. |
| _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, 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) |
Возвращает маркер метаданных для данного члена, если он доступен. |
| HasMetadataToken(MemberInfo) |
Возвращает значение, указывающее, доступен ли маркер метаданных для указанного элемента. |
| IsDefined(MemberInfo, Type, Boolean) |
Указывает, применяются ли пользовательские атрибуты указанного типа к указанному элементу и, при необходимости, применяются к его предкам. |
| IsDefined(MemberInfo, Type) |
Указывает, применяются ли пользовательские атрибуты указанного типа к указанному элементу. |
Применяется к
Потокобезопасность
Этот тип является потокобезопасной.