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 类。 与反射不同,它不检查方法。 TypeDescriptor 可由通过目标组件的 Site提供的多个服务动态扩展。 下表显示了这些服务。

服务名称 描述
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)

返回指定类型的类型转换器。

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[])

通过将指定的属性数组用作筛选器来返回指定组件类型的事件的集合。

GetFullComponentName(Object)

返回组件的完全限定名。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetProperties(Object)

返回指定组件的属性的集合。

GetProperties(Object, Attribute[])

通过将指定的属性数组用作筛选器来返回指定组件的属性的集合。

GetProperties(Object, Attribute[], Boolean)

通过使用指定的属性数组作为筛选器,并使用自定义类型描述符来返回指定组件的属性集合。

GetProperties(Object, Boolean)

使用默认类型描述符为指定组件返回属性集合。

GetProperties(Type)

返回指定组件类型的属性的集合。

GetProperties(Type, Attribute[])

通过将指定的属性数组用作筛选器来为指定类型的组件返回属性的集合。

GetProvider(Object)

返回指定组件的类型说明提供程序。

GetProvider(Type)

返回指定类型的类型说明提供程序。

GetReflectionType(Object)

如果给定对象,则返回可用于执行反射的 Type

GetReflectionType(Type)

如果给定类类型,则返回可用于执行反射的 Type

GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
Refresh(Assembly)

从缓存中清除指定程序集的属性和事件。

Refresh(Module)

从缓存中清除指定模块的属性和事件。

Refresh(Object)

从缓存中清除指定组件的属性和事件。

Refresh(Type)

从缓存中清除指定类型的组件的属性和事件。

RemoveAssociation(Object, Object)

删除两个对象之间的关联。

RemoveAssociations(Object)

删除主要对象的所有关联。

RemoveProvider(TypeDescriptionProvider, Object)

移除以前添加的与指定对象关联的类型说明提供程序。

RemoveProvider(TypeDescriptionProvider, Type)

删除以前添加的与指定类型关联的类型说明提供程序。

RemoveProviderTransparent(TypeDescriptionProvider, Object)

移除以前添加的与指定对象关联的类型说明提供程序。

RemoveProviderTransparent(TypeDescriptionProvider, Type)

删除以前添加的与指定类型关联的类型说明提供程序。

SortDescriptorArray(IList)

使用描述符的名称对描述符排序。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

事件

Refreshed

清除了组件的缓存时发生。

适用于

另请参阅