TypeDescriptor Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет сведения о характеристиках компонента, таких как атрибуты, свойства и события. Этот класс не может быть унаследован.
public ref class TypeDescriptor sealed
public sealed class TypeDescriptor
type TypeDescriptor = class
Public NotInheritable Class TypeDescriptor
- Наследование
-
TypeDescriptor
Комментарии
Платформа .NET Framework предоставляет два способа доступа к метаданным типа: API отражения, предоставляемый в пространстве имен System.Reflection, и класс TypeDescriptor. Отражение — это общий механизм, доступный всем типам, так как его основу устанавливается в методе GetType корневого Object класса. Сведения, возвращаемые для типа, не расширяемы, в том случае, если он не может быть изменен после компиляции целевого типа. Дополнительные сведения см. в разделах отражения.
Напротив, TypeDescriptor — это расширяемый механизм проверки компонентов: те классы, которые реализуют интерфейс IComponent. В отличие от отражения, он не проверяет методы. TypeDescriptor можно динамически расширить несколькими службами, доступными через Siteцелевого компонента. В следующей таблице показаны эти службы.
| Имя службы | Описание |
|---|---|
| IExtenderProvider | Позволяет другому классу, например ToolTip, предоставлять дополнительные свойства компоненту. |
| ITypeDescriptorFilterService | Позволяет другому объекту изменять стандартные метаданные, предоставляемые компонентом. |
| ICustomTypeDescriptor | Позволяет классу полностью и динамически указывать собственные метаданные, заменяя стандартный механизм проверки TypeDescriptor. |
Расширяемость, предоставляемая TypeDescriptor, позволяет представлению компонента во время разработки отличаться от фактического представления времени выполнения, что делает TypeDescriptor полезным для создания инфраструктуры времени разработки.
Все методы в TypeDescriptorstatic. Невозможно создать экземпляр этого класса, и этот класс не может быть унаследован.
Можно задать значения свойств и событий двумя разными способами: указать их в классе компонентов или изменить их во время разработки. Так как эти значения можно задать двумя способами, перегруженные методы TypeDescriptor принимают два различных типа параметров: тип класса или экземпляр объекта.
Если вы хотите получить доступ к TypeDescriptor информации и у вас есть экземпляр объекта, используйте метод, вызывающий компонент. Используйте метод, вызывающий тип класса только в том случае, если у вас нет экземпляра объекта.
Свойства и события кэшируются TypeDescriptor для скорости. Как правило, они являются константами для времени существования объекта. Однако поставщики и конструкторы расширений могут изменять набор свойств объекта. В этом случае необходимо вызвать метод Refresh для обновления кэша.
Свойства
| ComNativeDescriptorHandler |
Устаревшие..
Устаревшие..
Устаревшие..
Устаревшие..
Возвращает или задает поставщик сведений о типе объектной модели компонента (COM) для целевого компонента. |
| ComObjectType |
Возвращает тип объекта "Объектная модель компонента" (COM), представленный целевым компонентом. |
| InterfaceType |
Возвращает тип, представляющий поставщик описания типа для всех типов интерфейса. |
Методы
| AddAttributes(Object, Attribute[]) |
Добавляет атрибуты уровня класса в целевой экземпляр компонента. |
| AddAttributes(Type, Attribute[]) |
Добавляет атрибуты уровня класса в целевой тип компонента. |
| AddEditorTable(Type, Hashtable) |
Добавляет таблицу редактора для заданного базового типа редактора. |
| AddProvider(TypeDescriptionProvider, Object) |
Добавляет поставщик описания типа для одного экземпляра компонента. |
| AddProvider(TypeDescriptionProvider, Type) |
Добавляет поставщик описания типа для класса компонента. |
| AddProviderTransparent(TypeDescriptionProvider, Object) |
Добавляет поставщик описания типа для одного экземпляра компонента. |
| AddProviderTransparent(TypeDescriptionProvider, Type) |
Добавляет поставщик описания типа для класса компонента. |
| CreateAssociation(Object, Object) |
Создает первичную-вторичную связь между двумя объектами. |
| CreateDesigner(IComponent, Type) |
Создает экземпляр конструктора, связанный с указанным компонентом и заданным типом конструктора. |
| CreateEvent(Type, EventDescriptor, Attribute[]) |
Создает новый дескриптор событий, идентичный существующему дескриптору событий при передаче существующего EventDescriptor. |
| CreateEvent(Type, String, Type, Attribute[]) |
Создает дескриптор события, идентичный существующему дескриптору событий, динамически создавая сведения дескриптора из указанного события типа. |
| CreateInstance(IServiceProvider, Type, Type[], Object[]) |
Создает объект, который может заменить другой тип данных. |
| CreateProperty(Type, PropertyDescriptor, Attribute[]) |
Создает новый дескриптор свойства из существующего дескриптора свойств, используя указанный существующий массив PropertyDescriptor и атрибутов. |
| CreateProperty(Type, String, Type, Attribute[]) |
Создает и динамически привязывает дескриптор свойства к типу, используя указанное имя свойства, тип и массив атрибутов. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetAssociation(Type, Object) |
Возвращает экземпляр типа, связанного с указанным первичным объектом. |
| GetAttributes(Object) |
Возвращает коллекцию атрибутов для указанного компонента. |
| GetAttributes(Object, Boolean) |
Возвращает коллекцию атрибутов для указанного компонента и логическое значение, указывающее, что был создан дескриптор пользовательского типа. |
| GetAttributes(Type) |
Возвращает коллекцию атрибутов для указанного типа компонента. |
| GetClassName(Object) |
Возвращает имя класса для указанного компонента с помощью дескриптора типа по умолчанию. |
| GetClassName(Object, Boolean) |
Возвращает имя класса для указанного компонента с помощью дескриптора пользовательского типа. |
| GetClassName(Type) |
Возвращает имя класса для указанного типа. |
| GetComponentName(Object) |
Возвращает имя указанного компонента с помощью дескриптора типа по умолчанию. |
| GetComponentName(Object, Boolean) |
Возвращает имя указанного компонента с помощью дескриптора пользовательского типа. |
| GetConverter(Object) |
Возвращает преобразователь типов для типа указанного компонента. |
| GetConverter(Object, Boolean) |
Возвращает преобразователь типов для типа указанного компонента с дескриптором пользовательского типа. |
| GetConverter(Type) |
Возвращает преобразователь типов для указанного типа. |
| GetConverterFromRegisteredType(Object) |
Возвращает преобразователь типов для типа указанного компонента. |
| GetConverterFromRegisteredType(Type) |
Возвращает преобразователь типов для указанного зарегистрированного типа. |
| GetDefaultEvent(Object) |
Возвращает событие по умолчанию для указанного компонента. |
| GetDefaultEvent(Object, Boolean) |
Возвращает событие по умолчанию для компонента с пользовательским дескриптором типа. |
| GetDefaultEvent(Type) |
Возвращает событие по умолчанию для указанного типа компонента. |
| GetDefaultProperty(Object) |
Возвращает свойство по умолчанию для указанного компонента. |
| GetDefaultProperty(Object, Boolean) |
Возвращает свойство по умолчанию для указанного компонента с дескриптором пользовательского типа. |
| GetDefaultProperty(Type) |
Возвращает свойство по умолчанию для указанного типа компонента. |
| GetEditor(Object, Type) |
Возвращает редактор с указанным базовым типом для указанного компонента. |
| GetEditor(Object, Type, Boolean) |
Возвращает редактор с указанным базовым типом и дескриптором пользовательского типа для указанного компонента. |
| GetEditor(Type, Type) |
Возвращает редактор с указанным базовым типом для указанного типа. |
| GetEvents(Object) |
Возвращает коллекцию событий для указанного компонента. |
| GetEvents(Object, Attribute[]) |
Возвращает коллекцию событий для указанного компонента, используя указанный массив атрибутов в качестве фильтра. |
| GetEvents(Object, Attribute[], Boolean) |
Возвращает коллекцию событий для указанного компонента, используя указанный массив атрибутов в качестве фильтра и используя дескриптор пользовательского типа. |
| GetEvents(Object, Boolean) |
Возвращает коллекцию событий для указанного компонента с дескриптором пользовательского типа. |
| GetEvents(Type) |
Возвращает коллекцию событий для указанного типа компонента. |
| GetEvents(Type, Attribute[]) |
Возвращает коллекцию событий для указанного типа компонента, используя указанный массив атрибутов в качестве фильтра. |
| GetEventsFromRegisteredType(Type) |
Возвращает коллекцию событий для указанного типа компонента. |
| GetFullComponentName(Object) |
Возвращает полное имя компонента. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetProperties(Object) |
Возвращает коллекцию свойств для указанного компонента. |
| GetProperties(Object, Attribute[]) |
Возвращает коллекцию свойств для указанного компонента, используя указанный массив атрибутов в качестве фильтра. |
| GetProperties(Object, Attribute[], Boolean) |
Возвращает коллекцию свойств для указанного компонента, используя указанный массив атрибутов в качестве фильтра и используя дескриптор пользовательского типа. |
| GetProperties(Object, Boolean) |
Возвращает коллекцию свойств для указанного компонента с помощью дескриптора типа по умолчанию. |
| GetProperties(Type) |
Возвращает коллекцию свойств для указанного типа компонента. |
| GetProperties(Type, Attribute[]) |
Возвращает коллекцию свойств для указанного типа компонента, используя указанный массив атрибутов в качестве фильтра. |
| GetPropertiesFromRegisteredType(Object) |
Возвращает коллекцию свойств для указанного компонента. |
| GetPropertiesFromRegisteredType(Type) |
Возвращает коллекцию свойств для указанного типа. |
| GetProvider(Object) |
Возвращает поставщик описания типа для указанного компонента. |
| GetProvider(Type) |
Возвращает поставщик описания типа для указанного типа. |
| GetReflectionType(Object) |
Возвращает Type, который можно использовать для выполнения отражения, учитывая объект. |
| GetReflectionType(Type) |
Возвращает Type, который можно использовать для отражения с учетом типа класса. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| Refresh(Assembly) |
Очищает свойства и события для указанной сборки из кэша. |
| Refresh(Module) |
Очищает свойства и события для указанного модуля из кэша. |
| Refresh(Object) |
Очищает свойства и события для указанного компонента из кэша. |
| Refresh(Type) |
Очищает свойства и события для указанного типа компонента из кэша. |
| RegisterType<T>() |
Регистрирует тип, чтобы его можно было использовать поставщиками на основе отражения в обрезаемых приложениях. |
| RemoveAssociation(Object, Object) |
Удаляет связь между двумя объектами. |
| RemoveAssociations(Object) |
Удаляет все связи для первичного объекта. |
| RemoveProvider(TypeDescriptionProvider, Object) |
Удаляет ранее добавленный поставщик описания типов, связанный с указанным объектом. |
| RemoveProvider(TypeDescriptionProvider, Type) |
Удаляет ранее добавленный поставщик описания типа, связанный с указанным типом. |
| RemoveProviderTransparent(TypeDescriptionProvider, Object) |
Удаляет ранее добавленный поставщик описания типов, связанный с указанным объектом. |
| RemoveProviderTransparent(TypeDescriptionProvider, Type) |
Удаляет ранее добавленный поставщик описания типа, связанный с указанным типом. |
| SortDescriptorArray(IList) |
Сортирует дескрипторы с помощью имени дескриптора. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
События
| Refreshed |
Происходит при очистке кэша компонента. |
Применяется к
См. также раздел
- EventDescriptor
- PropertyDescriptor
- System.Reflection
- IComponent
- ISite
- Обзор дескриптора типа
- отражения