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
Производный
Атрибуты
Реализации

Примеры

В следующем примере используются 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MetadataToken

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

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

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

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

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

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

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

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

Возвращает имя текущего элемента.

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

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

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

Методы

Имя Описание
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)

При реализации в производном классе вызывает конструктор, отраженный этим ConstructorInfo с указанными аргументами, в соответствии с ограничениями указанного класса Binder.

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)

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

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

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

Имя Описание
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)

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

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

Потокобезопасность

Этот тип является потокобезопасной.