Type Класс

Определение

Представляет объявления типов для классов, интерфейсов, массивов, значений, перечислений параметров, определений универсальных типов и открытых или закрытых сконструированных универсальных типов.

public ref class Type abstract
public ref class Type abstract : System::Reflection::MemberInfo, System::Reflection::IReflect
public ref class Type abstract : System::Reflection::MemberInfo, System::Reflection::IReflect, System::Runtime::InteropServices::_Type
public abstract class Type
public abstract class Type : System.Reflection.MemberInfo, System.Reflection.IReflect
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public abstract class Type : System.Reflection.MemberInfo, System.Reflection.IReflect, System.Runtime.InteropServices._Type
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Type : System.Reflection.MemberInfo, System.Reflection.IReflect, System.Runtime.InteropServices._Type
type Type = class
type Type = class
    inherit MemberInfo
    interface IReflect
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
type Type = class
    inherit MemberInfo
    interface _Type
    interface IReflect
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Type = class
    inherit MemberInfo
    interface _Type
    interface IReflect
Public MustInherit Class Type
Public MustInherit Class Type
Inherits MemberInfo
Implements IReflect
Public MustInherit Class Type
Inherits MemberInfo
Implements _Type, IReflect
Наследование
Type
Наследование
Производный
Атрибуты
Реализации

Примеры

В следующем примере показаны несколько репрезентативных функций Type . оператор C# typeof ( GetType оператор в Visual Basic) используется для получения Type объекта, представляющего String . Из этого Type объекта GetMethod метод используется для получения объекта, MethodInfo представляющего String.Substring перегрузку, которая принимает начальное расположение и длину.

Для обнаружения сигнатуры перегрузки в примере кода создается временный массив, содержащий два Type объекта, представляющие int ( Integer в Visual Basic).

Примечание

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

В примере кода используется MethodInfo для вызова Substring метода в строке "Hello, World!" и отображения результата.

#using <System.dll>

using namespace System;
using namespace System::Reflection;

void main()
{
    // Get a Type object representing the System.String type.
    Type^ t = String::typeid;

    MethodInfo^ substr = t->GetMethod("Substring", 
        gcnew array<Type^> { int::typeid, int::typeid });

    Object^ result = 
        substr->Invoke("Hello, World!", gcnew array<Object^> { 7, 5 });
    Console::WriteLine("{0} returned \"{1}\".", substr, result);
}

/* This code example produces the following output:

System.String Substring(Int32, Int32) returned "World".
 */
using System;
using System.Reflection;

class Example
{
    static void Main()
    {
        Type t = typeof(String);

        MethodInfo substr = t.GetMethod("Substring", 
            new Type[] { typeof(int), typeof(int) });

        Object result = 
            substr.Invoke("Hello, World!", new Object[] { 7, 5 });
        Console.WriteLine("{0} returned \"{1}\".", substr, result);
    }
}

/* This code example produces the following output:

System.String Substring(Int32, Int32) returned "World".
 */
Imports System.Reflection

Module Example
    
    Sub Main() 

        Dim t As Type = GetType(String)
        
        Dim substr As MethodInfo = t.GetMethod("Substring", _
            New Type() { GetType(Integer), GetType(Integer) })
        
        Dim result As Object = _ 
            substr.Invoke("Hello, World!", New Object() { 7, 5 })
        Console.WriteLine("{0} returned ""{1}"".", substr, result)
    
    End Sub 
End Module

' This code example produces the following output:
'
'System.String Substring(Int32, Int32) returned "World".

Комментарии

Type является корнем System.Reflection функциональности и является основным способом доступа к метаданным. Члены класса используются Type для получения сведений об объявлении типа, о членах типа (таких как конструкторы, методы, поля, свойства и события класса), а также о модуле и сборке, в которой развернут класс.

Разрешения не требуются, чтобы код использовал отражение для получения сведений о типах и их членах, независимо от их уровней доступа. Разрешения не требуются, чтобы код использовал отражение для доступа к открытым членам или другим членам, уровни доступа которых станут видимыми во время обычной компиляции. Однако, чтобы код использовал отражение для доступа к членам, которые обычно недоступны, например закрытые или внутренние методы, или защищенные поля типа, который не наследуется классом, код должен иметь ReflectionPermission . См. раздел вопросы безопасности при отражении.

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

Примечание

В сценариях многопоточности не блокируйте Type объекты для синхронизации доступа к static данным. Другой код, для которого нет элемента управления, может также заблокировать тип класса. Это может привести к взаимоблокировке. Вместо этого следует синхронизировать доступ к статическим данным путем блокировки закрытого static объекта.

Примечание

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

Примечание

Интерфейсы, расширяющие другие интерфейсы, не наследуют методы, определенные в расширенных интерфейсах.

Содержание

Какие типы представляет объект типа?
Получение объекта типа
Сравнение объектов типа на равенство

Какие типы представляет объект типа?

Этот класс является потокобезопасным; несколько потоков могут одновременно считывать из экземпляра этого типа. Экземпляр Type класса может представлять любой из следующих типов:

  • Классы

  • Типы значений

  • Массивы

  • интерфейсов,

  • Перечисления

  • Делегаты

  • Сконструированные универсальные типы и определения универсальных типов

  • Аргументы типа и параметры типов сконструированных универсальных типов, определений универсальных типов и определений универсальных методов

Получение объекта типа

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

  • Метод экземпляра Object.GetType возвращает Type объект, представляющий тип экземпляра. Поскольку все управляемые типы являются производными от Object , GetType метод может быть вызван для экземпляра любого типа.

    В следующем примере вызывается Object.GetType метод для определения типа среды выполнения каждого объекта в массиве объектов.

    using namespace System;
    
    void main()
    {
       array<Object^>^ values = { "word", true, 120, 136.34 };
       for each (Object^ value in values)
          Console::WriteLine("{0} - type {1}", value, 
                            value->GetType()->Name);
    }
    // The example displays the following output:
    //       word - type String
    //       True - type Boolean
    //       120 - type Int32
    //       136.34 - type Double
    
    object[] values = { "word", true, 120, 136.34, 'a' };
    foreach (var value in values)
       Console.WriteLine("{0} - type {1}", value, 
                         value.GetType().Name);
    
    // The example displays the following output:
    //       word - type String
    //       True - type Boolean
    //       120 - type Int32
    //       136.34 - type Double
    //       a - type Char
    
    Module Example
       Public Sub Main()
          Dim values() As Object = { "word", True, 120, 136.34, "a"c }
          For Each value In values
             Console.WriteLine("{0} - type {1}", value, 
                               value.GetType().Name)
          Next
       End Sub
    End Module
    ' The example displays the following output:
    '       word - type String
    '       True - type Boolean
    '       120 - type Int32
    '       136.34 - type Double
    '       a - type Char
    
  • Статические Type.GetType методы возвращают Type объект, представляющий тип, указанный с помощью его полного имени.

  • Module.GetTypesМетоды, Module.GetType и Module.FindTypes возвращают Type объекты, представляющие типы, определенные в модуле. Первый метод можно использовать для получения массива Type объектов для всех открытых и закрытых типов, определенных в модуле. (Экземпляр можно получить Module с помощью Assembly.GetModule Assembly.GetModules метода или или через Type.Module свойство.)

  • System.Reflection.AssemblyОбъект содержит ряд методов для получения классов, определенных в сборке, включая Assembly.GetType , Assembly.GetTypes и Assembly.GetExportedTypes .

  • FindInterfacesМетод возвращает отфильтрованный список типов интерфейса, поддерживаемых типом.

  • GetElementTypeМетод возвращает Type объект, представляющий элемент.

  • GetInterfacesМетоды и GetInterface возвращают Type объекты, представляющие типы интерфейсов, поддерживаемые типом.

  • GetTypeArrayМетод возвращает массив Type объектов, представляющих типы, заданные произвольным набором объектов. Объекты указываются с помощью массива типа Object .

  • GetTypeFromProgIDМетоды и GetTypeFromCLSID предоставляются для COM-взаимодействия. Они возвращают Type объект, представляющий тип, заданный параметром ProgID или CLSID .

  • GetTypeFromHandleМетод обеспечивает взаимодействие. Он возвращает Type объект, представляющий тип, указанный в обработчике класса.

  • оператор C# typeof , typeid оператор C++ и GetType оператор Visual Basic получают Type объект для типа.

  • MakeGenericTypeМетод возвращает объект, Type представляющий сконструированный универсальный тип, который является открытым сконструированным типом, если его ContainsGenericParameters свойство возвращает true , а закрытый сконструированный тип — в противном случае. Универсальный тип можно создать только в том случае, если он закрыт.

  • MakeArrayTypeМетоды, MakePointerType и MakeByRefType возвращают Type объекты, представляющие соответственно массив указанного типа, указатель на указанный тип и тип ссылочного параметра ( ref в C#, ByRef в Visual Basic).

Сравнение объектов типа на равенство

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

using namespace System;

void main()
{
   Int64 number1 = 1635429;
   Int32 number2 = 16203;
   double number3 = 1639.41;
   Int64 number4 = 193685412;
   
   // Get the type of number1.
   Type^ t = number1.GetType();
   
   // Compare types of all objects with number1.
   Console::WriteLine("Type of number1 and number2 are equal: {0}",
                      Object::ReferenceEquals(t, number2.GetType()));
   Console::WriteLine("Type of number1 and number3 are equal: {0}",
                      Object::ReferenceEquals(t, number3.GetType()));
   Console::WriteLine("Type of number1 and number4 are equal: {0}",
                      Object::ReferenceEquals(t, number4.GetType()));
}
// The example displays the following output:
//       Type of number1 and number2 are equal: False
//       Type of number1 and number3 are equal: False
//       Type of number1 and number4 are equal: True
long number1 = 1635429;
int number2 = 16203;
double number3 = 1639.41;
long number4 = 193685412;

// Get the type of number1.
Type t = number1.GetType();

// Compare types of all objects with number1.
Console.WriteLine("Type of number1 and number2 are equal: {0}",
                  Object.ReferenceEquals(t, number2.GetType()));
Console.WriteLine("Type of number1 and number3 are equal: {0}",
                  Object.ReferenceEquals(t, number3.GetType()));
Console.WriteLine("Type of number1 and number4 are equal: {0}",
                  Object.ReferenceEquals(t, number4.GetType()));

// The example displays the following output:
//       Type of number1 and number2 are equal: False
//       Type of number1 and number3 are equal: False
//       Type of number1 and number4 are equal: True
Module Example
   Public Sub Main()
      Dim number1 As Long = 1635429
      Dim number2 As Integer = 16203
      Dim number3 As Double = 1639.41
      Dim number4 As Long = 193685412
      
      ' Get the type of number1.
      Dim t As Type = number1.GetType()
      
      ' Compare types of all objects with number1.
      Console.WriteLine("Type of number1 and number2 are equal: {0}",
                        Object.ReferenceEquals(t, number2.GetType()))
      Console.WriteLine("Type of number1 and number3 are equal: {0}",
                        Object.ReferenceEquals(t, number3.GetType()))
      Console.WriteLine("Type of number1 and number4 are equal: {0}",
                        Object.ReferenceEquals(t, number4.GetType()))
   End Sub
End Module
' The example displays the following output:
'       Type of number1 and number2 are equal: False
'       Type of number1 and number3 are equal: False
'       Type of number1 and number4 are equal: True

Примечания для тех, кто реализует этот метод

При наследовании из необходимо Type переопределить следующие члены:

Конструкторы

Type()

Инициализирует новый экземпляр класса Type.

Поля

Delimiter

Разделяет имена в пространстве имен класса Type. Это поле доступно только для чтения.

EmptyTypes

Представляет пустой массив типа Type. Это поле доступно только для чтения.

FilterAttribute

Предоставляет фильтр членов, используемый для атрибутов. Это поле доступно только для чтения.

FilterName

Представляет фильтр членов с учетом регистра, применяемый к именам. Это поле доступно только для чтения.

FilterNameIgnoreCase

Представляет фильтр членов без учета регистра, применяемый к именам. Это поле доступно только для чтения.

Missing

Представляет отсутствующее значение в данных объекта Type. Это поле доступно только для чтения.

Свойства

Assembly

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

AssemblyQualifiedName

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

Attributes

Возвращает атрибуты, связанные с объектом Type.

BaseType

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

ContainsGenericParameters

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

CustomAttributes

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

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

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

DeclaringType

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

DefaultBinder

Возвращает ссылку на связыватель по умолчанию, который реализует внутренние правила выбора соответствующих членов, вызываемых методом InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]).

FullName

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

GenericParameterAttributes

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

GenericParameterPosition

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

GenericTypeArguments

Получает массив аргументов универсального типа для этого типа.

GUID

Возвращает идентификатор GUID, связанный с объектом Type.

HasElementType

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

IsAbstract

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

IsAnsiClass

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

IsArray

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

IsAutoClass

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

IsAutoLayout

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

IsByRef

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

IsByRefLike

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

IsClass

Получает значение, позволяющее определить, является объект Type классом или делегатом (иными словами, не является типом значения или интерфейсом).

IsCollectible

Получает значение, указывающее, является ли объект MemberInfo частью сборки, содержащейся в забираемом контексте AssemblyLoadContext.

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

Возвращает значение, указывающее, является ли объект Type COM-объектом.

IsConstructedGenericType

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

IsContextful

Возвращает значение, позволяющее определить, можно ли поместить в контекст объект Type.

IsEnum

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

IsExplicitLayout

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

IsGenericMethodParameter

Получает значение, позволяющее определить, представляет ли текущий объект Type параметр типа в определении универсального метода.

IsGenericParameter

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

IsGenericType

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

IsGenericTypeDefinition

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

IsGenericTypeParameter

Получает значение, позволяющее определить, представляет ли текущий объект Type параметр типа в определении универсального типа.

IsImport

Возвращает значение, позволяющее определить, есть ли у объекта Type атрибут ComImportAttribute, свидетельствующий о том, что объект был импортирован из библиотеки COM-типов.

IsInterface

Возвращает значение, позволяющее определить, является ли объект Type интерфейсом (иными словами, не является классом или типом значения).

IsLayoutSequential

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

IsMarshalByRef

Возвращает значение, указывающее, маршалирован ли объект Type по ссылке.

IsNested

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

IsNestedAssembly

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

IsNestedFamANDAssem

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

IsNestedFamily

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

IsNestedFamORAssem

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

IsNestedPrivate

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

IsNestedPublic

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

IsNotPublic

Возвращает значение, позволяющее определить, не был ли объект Type объявлен как открытый.

IsPointer

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

IsPrimitive

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

IsPublic

Возвращает значение, позволяющее определить, был ли объект Type объявлен как открытый.

IsSealed

Возвращает значение, позволяющее определить, был ли объект Type объявлен как запечатанный.

IsSecurityCritical

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

IsSecuritySafeCritical

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

IsSecurityTransparent

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

IsSerializable

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

IsSignatureType

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

IsSpecialName

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

IsSZArray

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

IsTypeDefinition

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

IsUnicodeClass

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

IsValueType

Возвращает значение, позволяющее определить, является ли объект Type типом значения.

IsVariableBoundArray

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

IsVisible

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

MemberType

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

MetadataToken

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

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

Возвращает модуль (DLL), в котором определен текущий объект Type.

Name

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

Name

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

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

Возвращает пространство имен объекта Type.

ReflectedType

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

StructLayoutAttribute

Возвращает атрибут StructLayoutAttribute, описывающий структуру текущего типа.

TypeHandle

Возвращает дескриптор текущего объекта Type.

TypeInitializer

Возвращает инициализатор типа.

UnderlyingSystemType

Указывает на тип, предоставляемый средой CLR, представляющей этот тип.

Методы

Equals(Object)

Определяет, совпадает ли базовый системный тип текущего объекта Type с базовым системным типом указанного объекта Object.

Equals(Type)

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

FindInterfaces(TypeFilter, Object)

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

FindMembers(MemberTypes, BindingFlags, MemberFilter, Object)

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

GetArrayRank()

Возвращает размерность массива.

GetAttributeFlagsImpl()

При переопределении в производном классе реализует свойство Attributes и возвращает побитовое сочетание значений перечисления, указывающих атрибуты, связанные с Type.

GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

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

GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[])

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

GetConstructor(BindingFlags, Type[])

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

GetConstructor(Type[])

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

GetConstructorImpl(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

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

GetConstructors()

Возвращает все открытые конструкторы, определенные для текущего объекта Type.

GetConstructors(BindingFlags)

При переопределении в производном классе ищет конструкторы, определенные для текущего объекта Type, с использованием указанного объекта BindingFlags.

GetCustomAttributes(Boolean)

При переопределении в производном классе возвращает массив всех настраиваемых атрибутов, примененных к данному члену.

(Унаследовано от MemberInfo)
GetCustomAttributes(Type, Boolean)

При переопределении в производном классе возвращает массив настраиваемых атрибутов, применяемых к этому элементу и определяемых параметром Type.

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

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

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

Выполняет поиск членов, определенных для текущего объекта Type, для которого задан атрибут DefaultMemberAttribute.

GetElementType()

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

GetEnumName(Object)

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

GetEnumNames()

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

GetEnumUnderlyingType()

Возвращает базовый тип текущего типа перечисления.

GetEnumValues()

Возвращает массив значений констант в текущем типе перечисления.

GetEvent(String)

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

GetEvent(String, BindingFlags)

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

GetEvents()

Возвращает все открытые события, которые объявлены или унаследованы текущим объектом Type.

GetEvents(BindingFlags)

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

GetField(String)

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

GetField(String, BindingFlags)

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

GetFields()

Возвращает все открытые поля текущего объекта Type.

GetFields(BindingFlags)

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

GetGenericArguments()

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

GetGenericParameterConstraints()

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

GetGenericTypeDefinition()

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

GetHashCode()

Возвращает хэш-код данного экземпляра.

GetInterface(String)

Выполняет поиск интерфейса с заданным именем.

GetInterface(String, Boolean)

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

GetInterfaceMap(Type)

Возвращает сопоставление для интерфейса заданного типа.

GetInterfaces()

При переопределении в производном классе возвращает все интерфейсы, реализуемые или наследуемые текущим объектом Type.

GetMember(String)

Выполняет поиск открытого члена с заданным именем.

GetMember(String, BindingFlags)

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

GetMember(String, MemberTypes, BindingFlags)

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

GetMembers()

Возвращает все открытые члены текущего объекта Type.

GetMembers(BindingFlags)

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

GetMemberWithSameMetadataDefinitionAs(MemberInfo)

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

GetMethod(String)

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

GetMethod(String, BindingFlags)

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

GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Ищет метод с параметрами, соответствующими указанным модификаторам и типам аргументов, с учетом заданных ограничений привязки и соглашений о вызовах.

GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])

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

GetMethod(String, BindingFlags, Type[])

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

GetMethod(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

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

GetMethod(String, Int32, BindingFlags, Binder, Type[], ParameterModifier[])

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

GetMethod(String, Int32, Type[])

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

GetMethod(String, Int32, Type[], ParameterModifier[])

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

GetMethod(String, Type[])

Ищет указанный открытый метод, параметры которого соответствуют заданным типам аргументов.

GetMethod(String, Type[], ParameterModifier[])

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

GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

При переопределении в производном классе ищет указанный метод, параметры которого соответствуют указанным типам аргументов и модификаторам, используя для этого заданные ограничения привязки и соглашение о вызовах.

GetMethodImpl(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

При переопределении в производном классе ищет указанный метод, параметры которого соответствуют указанному числу универсальных параметров, типам аргументов и модификаторам, используя для этого заданные ограничения привязки и соглашение о вызовах.

GetMethods()

Возвращает все открытые методы текущего объекта Type.

GetMethods(BindingFlags)

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

GetNestedType(String)

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

GetNestedType(String, BindingFlags)

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

GetNestedTypes()

Возвращает открытые типы, вложенные в текущий объект Type.

GetNestedTypes(BindingFlags)

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

GetProperties()

Возвращает все открытые свойства текущего объекта Type.

GetProperties(BindingFlags)

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

GetProperty(String)

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

GetProperty(String, BindingFlags)

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

GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

Ищет свойство с параметрами, соответствующими указанным модификаторам и типам аргументов, с учетом заданных ограничений привязки.

GetProperty(String, Type)

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

GetProperty(String, Type, Type[])

Ищет указанное открытое свойство, параметры которого соответствуют указанным типам аргументов.

GetProperty(String, Type, Type[], ParameterModifier[])

Ищет заданное открытое свойство, параметры которого соответствуют указанным типам аргументов и модификаторам.

GetProperty(String, Type[])

Ищет указанное открытое свойство, параметры которого соответствуют указанным типам аргументов.

GetPropertyImpl(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

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

GetType()

Возвращает текущий Type.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
GetType(String)

Возвращает объект Type с указанным именем, учитывая при поиске регистр.

GetType(String, Boolean)

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

GetType(String, Boolean, Boolean)

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

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>)

Получает тип с указанным именем; дополнительно может предоставлять настраиваемые методы для разрешения сборки и типа.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)

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

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean)

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

GetTypeArray(Object[])

Возвращает типы объектов в указанном массиве.

GetTypeCode(Type)

Возвращает код базового типа указанного объекта Type.

GetTypeCodeImpl()

Возвращает код базового типа этого экземпляра Type.

GetTypeFromCLSID(Guid)

Возвращает тип, связанный с заданным кодом CLSID.

GetTypeFromCLSID(Guid, Boolean)

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

GetTypeFromCLSID(Guid, String)

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

GetTypeFromCLSID(Guid, String, Boolean)

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

GetTypeFromHandle(RuntimeTypeHandle)

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

GetTypeFromProgID(String)

Возвращает тип, связанный с указанным идентификатором ProgID, и возвращает значение NULL, если при загрузке объекта Type возникла ошибка.

GetTypeFromProgID(String, Boolean)

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

GetTypeFromProgID(String, String)

Возвращает с указанного сервера тип, связанный с заданным идентификатором ProgID, и возвращает значение NULL, если при загрузке типа произошла ошибка.

GetTypeFromProgID(String, String, Boolean)

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

GetTypeHandle(Object)

Возвращает дескриптор Type для указанного объекта.

HasElementTypeImpl()

При переопределении в производном классе реализует свойство HasElementType и определяет, что содержится в текущем объекте Type: непосредственно другой тип или же указывающая на него ссылка (иными словами, является ли текущий объект Type массивом, указателем или параметром или же он передается по ссылке).

HasSameMetadataDefinitionAs(MemberInfo) (Унаследовано от MemberInfo)
InvokeMember(String, BindingFlags, Binder, Object, Object[])

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

InvokeMember(String, BindingFlags, Binder, Object, Object[], CultureInfo)

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

InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])

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

IsArrayImpl()

При переопределении в производном классе реализует свойство IsArray и определяет, является ли данный объект Type массивом.

IsAssignableFrom(Type)

Определяет, можно ли присвоить экземпляр указанного типа c переменной текущего типа.

IsAssignableTo(Type)

Определяет, можно ли назначить текущий тип переменной указанного типа targetType.

IsByRefImpl()

При переопределении в производном классе реализует свойство IsByRef и определяет, передается ли данный объект Type по ссылке.

IsCOMObjectImpl()

При переопределении в производном классе реализует свойство IsCOMObject и определяет, является ли объект Type COM-объектом.

IsContextfulImpl()

Реализует свойство IsContextful и определяет, можно ли поместить в контекст данный объект Type.

IsDefined(Type, Boolean)

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

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

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

IsEquivalentTo(Type)

Определяет, имеют ли два типа модели COM одинаковые удостоверения и могут ли они считаться эквивалентными.

IsInstanceOfType(Object)

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

IsMarshalByRefImpl()

Реализует свойство IsMarshalByRef и определяет, маршалируется ли объект Type по ссылке.

IsPointerImpl()

При переопределении в производном классе реализует свойство IsPointer и определяет, является ли объект Type указателем.

IsPrimitiveImpl()

При переопределении в производном классе реализует свойство IsPrimitive и определяет, является ли объект Type одним из типов-примитивов.

IsSubclassOf(Type)

Определяет, является ли текущий Type производным от указанного Type.

IsValueTypeImpl()

Реализует свойство IsValueType и определяет, является ли объект Type типом значения (иными словами, не является классом или интерфейсом).

MakeArrayType()

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

MakeArrayType(Int32)

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

MakeByRefType()

Возвращает объект Type, который представляет текущий тип при передаче в качестве параметра ref (параметра ByRef в Visual Basic).

MakeGenericMethodParameter(Int32)

Возвращает объект типа сигнатуры, который может быть передан в параметр массива Type [] метода GetMethod для представления ссылки на универсальный параметр.

MakeGenericSignatureType(Type, Type[])

Создает универсальный тип сигнатуры, позволяющий сторонним реализациям отражения полностью поддерживать использование типов сигнатур в запросах типов.

MakeGenericType(Type[])

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

MakePointerType()

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

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ReflectionOnlyGetType(String, Boolean, Boolean)
Является устаревшей.

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

ToString()

Возвращает объект типа String, представляющий имя текущего объекта Type.

Операторы

Equality(Type, Type)

Определение равенства двух объектов Type.

Inequality(Type, Type)

Определяет неравенство двух объектов Type.

Явные реализации интерфейса

_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)
_Type.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

_Type.GetTypeInfo(UInt32, UInt32, IntPtr)

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

_Type.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

_Type.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

ICustomAttributeProvider.GetCustomAttributes(Boolean)

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

(Унаследовано от MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

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

(Унаследовано от MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean)

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

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

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

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)

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

GetTypeInfo(Type)

Возвращает представление TypeInfo указанного типа.

GetMetadataToken(MemberInfo)

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

HasMetadataToken(MemberInfo)

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

GetRuntimeEvent(Type, String)

Получает объект, представляющий указанное событие.

GetRuntimeEvents(Type)

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

GetRuntimeField(Type, String)

Извлекает объект , который представляет указанное поле.

GetRuntimeFields(Type)

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

GetRuntimeMethod(Type, String, Type[])

Извлекает объект, который представляет указанный метод.

GetRuntimeMethods(Type)

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

GetRuntimeProperties(Type)

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

GetRuntimeProperty(Type, String)

Извлекает объект, который представляет указанное свойство.

GetConstructor(Type, Type[])
GetConstructors(Type)
GetConstructors(Type, BindingFlags)
GetDefaultMembers(Type)
GetEvent(Type, String)
GetEvent(Type, String, BindingFlags)
GetEvents(Type)
GetEvents(Type, BindingFlags)
GetField(Type, String)
GetField(Type, String, BindingFlags)
GetFields(Type)
GetFields(Type, BindingFlags)
GetGenericArguments(Type)
GetInterfaces(Type)
GetMember(Type, String)
GetMember(Type, String, BindingFlags)
GetMembers(Type)
GetMembers(Type, BindingFlags)
GetMethod(Type, String)
GetMethod(Type, String, BindingFlags)
GetMethod(Type, String, Type[])
GetMethods(Type)
GetMethods(Type, BindingFlags)
GetNestedType(Type, String, BindingFlags)
GetNestedTypes(Type, BindingFlags)
GetProperties(Type)
GetProperties(Type, BindingFlags)
GetProperty(Type, String)
GetProperty(Type, String, BindingFlags)
GetProperty(Type, String, Type)
GetProperty(Type, String, Type, Type[])
IsAssignableFrom(Type, Type)
IsInstanceOfType(Type, Object)

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

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

Данный тип потокобезопасен.

См. также раздел