TypeDescriptor 类

定义

提供有关组件的特征的信息,例如其属性、属性和事件。 无法继承此类。

public ref class TypeDescriptor sealed
public sealed class TypeDescriptor
type TypeDescriptor = class
Public NotInheritable Class TypeDescriptor
继承
TypeDescriptor

注解

.NET Framework 提供了两种方法来访问类型上的元数据:System.Reflection 命名空间中提供的反射 API 和 TypeDescriptor 类。 反射是适用于所有类型的通用机制,因为它的基础是在根 Object 类的 GetType 方法中建立的。 它为类型返回的信息不可扩展,因为它无法在目标类型的编译后对其进行修改。 有关详细信息,请参阅 反射中的主题。

相比之下,TypeDescriptor 是组件的可扩展检查机制:实现 IComponent 接口的类。 与反射不同,它不会检查方法。 可以通过目标组件的 Site提供的多个服务动态扩展 TypeDescriptor。 下表显示了这些服务。

服务名称 描述
IExtenderProvider 允许其他类(如 ToolTip)为组件提供额外的属性。
ITypeDescriptorFilterService 允许另一个对象修改组件公开的标准元数据。
ICustomTypeDescriptor 使类能够完全动态地指定其自己的元数据,并替换 TypeDescriptor的标准检查机制。

TypeDescriptor 提供的扩展性允许组件的设计时表示形式与其实际运行时表示形式不同,这使得 TypeDescriptor 可用于生成设计时基础结构。

TypeDescriptor 中的所有方法都 static。 不能创建此类的实例,并且无法继承此类。

可以通过两种不同的方式设置属性和事件值:在组件类中指定属性和事件值,或在设计时更改它们。 由于可以通过两种方式设置这些值,因此 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

清除组件的缓存时发生。

适用于

另请参阅