| Тип | Описание |
|---|---|
| IsAbstract IsArray IsClass IsCOMObject IsEnum IsGenerlcTypeDefinition IsGenericParameter Islnterface IsPrimitive IsNestedPrivate IsNestedPublic IsSealed IsValueType | Эти свойства (наряду с другими аналогичными) позволяют выяснить ряд основных характеристик соответствующего объекта Туре (например, является ли этот объект абстрактным методом, массивом, вложенным классом и т.д.) |
| GetConstructors GetEvents GetFields GetInterfaces GetMembers GetMethods GetNestedTypes GetProperties | Эти методы (наряду с другими аналогичными) позволяют получить массив, представляющий все элементы соответствующего вида (интерфейсы, методы, свойства и т.п.). Каждый метод возвращает свой массив (например, GetFields возвращает массив FieldInfо, GetMethods возвращает массив MethodInfo и т.д.). Каждый из этих методов имеет также форму единственного числа (GetMethod, GetProperty и т.д.), которая позволяет извлечь один конкретный элемент по имени, а не все связанные элементы |
| FindMembers | Возвращает массив типов MemberInfo на основе заданных критериев поиска |
| GetType | Статический метод, возвращающий экземпляр Туре по заданному строковому имени |
| InvokeMember | Позволяет выполнить динамическую привязку к заданному элементу |
Получение Туре с помощью System.Object.GetType
Экземпляр класса Туре можно получить множеством способов. Нельзя только непосредственно создать объект Туре, используя для этого ключевое слово new, поскольку класс Туре является абстрактным. Чтобы привести пример одной из допустимых возможностей, напомним, что System.Object определяет метод GetType, который возвращает экземпляр класса Туре, представляющий метаданные соответствующего объекта.
// Получение информации типа с помощью экземпляра SportsCar.
SportsCar sc = new SportsCar;
Type t = sc.GetType;
Очевидно, что этот подход будет оправдан только в том случае, когда вы имеете информацию о соответствующем типе (в данном случае это тип SportsCar) во время компиляции. При этом становится ясно, что такие инструменты, как ildasm.exe, не могут получать информацию о типах путем непосредственно вызова System.Object.GetType, поскольку ildasm.exe не компилируется вместе с пользовательскими компоновочными блоками.
Получение Туре с помощью System.Type.GetType
Более гибкий подход обеспечивается использованием статического члена GetType класса System.Type с указанием абсолютного имени соответствующего типа в виде строки. При использовании такого подхода для извлечения метаданных уже
Метод Туре.GetType перегружен, чтобы можно было указать два параметра типа Boolean, один из которых контролирует необходимость генерирования исключения, когда тип не найден, а другой – необходимость игнорирования регистра символов в строке. В качестве примера рассмотрите следующий фрагмент программного кода.
// Получение информации типа с помощью метода Type.GetType
// (не генерировать исключение, если SportsCar не найден,
// и игнорировать регистр символов).
Type t = Type.GetType(''CarLibrary.SportsCar", false, true);