共用方式為


TypeDescriptor 類別

定義

提供元件特性的相關信息,例如其屬性、屬性和事件。 無法繼承這個類別。

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

備註

.NET 框架提供兩種存取型態元資料的方式:System.Reflection命名空間中的反射 API,以及 TypeDescriptor 類別。 反射是一種通用機制,所有類型都能使用,因為它的基礎建立在 GetTypeObject 類別的方法中。 它針對類型傳回的信息無法擴充,因為它無法在目標型別編譯之後修改。 欲了解更多資訊,請參閱 「反思」中的主題。

相較之下, TypeDescriptor 是對元件的可擴充檢查機制:即實作介面的 IComponent 類別。 不同於反映,它不會檢查方法。 TypeDescriptor 可透過目標元件 Site提供的多項服務動態擴展。 下表顯示這些服務。

服務名稱 描述
IExtenderProvider 使另一個類別(如 ToolTip)能為元件提供額外屬性。
ITypeDescriptorFilterService 可讓另一個物件修改元件公開的標準元數據。
ICustomTypeDescriptor 讓類別能夠完全且動態地指定自己的元資料,取代了 的 TypeDescriptor標準檢查機制。

TypeDescriptor 提供的可擴充性允許元件的設計時表示方式與實際執行時表示不同,這對於建構設計時基礎設施非常 TypeDescriptor 有幫助。

所有方法皆 TypeDescriptorstatic。 您無法建立這個類別的實例,而且無法繼承這個類別。

您可以設定屬性和事件值兩種不同的方式:在元件類別中指定屬性和事件值,或在設計時間加以變更。 由於這些值可以用兩種方式設定,過載的方法 TypeDescriptor 會取兩種不同類型的參數:類別類型或物件實例。

當你想要存取 TypeDescriptor 資訊且有物件實例時,使用呼叫元件的方法。 只有在您沒有 對象的實例時,才使用呼叫 類別類型的方法。

屬性和事件會被快 TypeDescriptor 取以加快速度。 一般而言,它們是物件存留期的常數。 不過,擴充子提供者和設計工具可以變更 物件上的屬性集。 若是此情況,則必須呼叫該 Refresh 方法來更新快取。

屬性

名稱 Description
ComNativeDescriptorHandler
已淘汰.
已淘汰.
已淘汰.
已淘汰.

取得或設定目標元件的元件物件模型 (COM) 型別資訊的提供者。

ComObjectType

取得目標元件所表示之元件物件模型 (COM) 物件的型別。

InterfaceType

取得型別,表示所有介面型別的類型描述提供者。

方法

名稱 Description
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, Boolean)

傳回指定元件的屬性集合,以及指出已建立自定義型別描述元的布爾值。

GetAttributes(Object)

傳回指定元件的屬性集合。

GetAttributes(Type)

傳回指定之元件類型的屬性集合。

GetClassName(Object, Boolean)

使用自定義型別描述元,傳回指定元件之類別的名稱。

GetClassName(Object)

使用預設類型描述元,傳回指定元件之類別的名稱。

GetClassName(Type)

傳回指定之型別的類別名稱。

GetComponentName(Object, Boolean)

使用自定義型別描述元傳回指定元件的名稱。

GetComponentName(Object)

使用預設類型描述元傳回指定元件的名稱。

GetConverter(Object, Boolean)

傳回具有自定義型別描述元之指定元件型別的類型轉換器。

GetConverter(Object)

傳回指定元件之型別的型別轉換子。

GetConverter(Type)

傳回指定型別的類型轉換器。

GetConverterFromRegisteredType(Object)

取得指定元件的型別轉換子。

GetConverterFromRegisteredType(Type)

取得指定之已註冊型別的類型轉換子。

GetDefaultEvent(Object, Boolean)

傳回具有自定義類型描述元之元件的預設事件。

GetDefaultEvent(Object)

傳回指定元件的預設事件。

GetDefaultEvent(Type)

傳回指定元件類型的預設事件。

GetDefaultProperty(Object, Boolean)

傳回具有自定義型別描述元之指定元件的預設屬性。

GetDefaultProperty(Object)

傳回指定元件的預設屬性。

GetDefaultProperty(Type)

傳回指定之元件類型的預設屬性。

GetEditor(Object, Type, Boolean)

傳回具有指定基底類型的編輯器,以及具有指定元件的自定義型別描述元。

GetEditor(Object, Type)

取得具有指定元件之指定基底類型的編輯器。

GetEditor(Type, Type)

傳回具有指定型別之指定基底類型的編輯器。

GetEvents(Object, Attribute[], Boolean)

使用指定的屬性陣組做為篩選,以及使用自定義型別描述元,傳回指定元件的事件集合。

GetEvents(Object, Attribute[])

使用指定的屬性陣組做為篩選,傳回指定元件的事件集合。

GetEvents(Object, Boolean)

傳回具有自定義型別描述元之指定元件的事件集合。

GetEvents(Object)

傳回指定元件的事件集合。

GetEvents(Type, Attribute[])

使用指定的屬性陣組做為篩選,傳回指定之元件類型的事件集合。

GetEvents(Type)

傳回指定之元件類型的事件集合。

GetEventsFromRegisteredType(Type)

取得指定元件類型的事件集合。

GetFullComponentName(Object)

傳回元件的完整名稱。

GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetProperties(Object, Attribute[], Boolean)

使用指定的屬性陣組做為篩選條件,以及使用自定義型別描述元,傳回指定元件的屬性集合。

GetProperties(Object, Attribute[])

使用指定的屬性陣組做為篩選,傳回指定元件的屬性集合。

GetProperties(Object, Boolean)

使用預設類型描述元傳回指定元件的屬性集合。

GetProperties(Object)

傳回指定元件的屬性集合。

GetProperties(Type, Attribute[])

使用指定的屬性陣組做為篩選,傳回指定之元件類型的屬性集合。

GetProperties(Type)

傳回指定之元件類型的屬性集合。

GetPropertiesFromRegisteredType(Object)

取得指定元件的屬性集合。

GetPropertiesFromRegisteredType(Type)

取得指定型別的屬性集合。

GetProvider(Object)

傳回指定元件的型別描述提供者。

GetProvider(Type)

傳回指定型別的類型描述提供者。

GetReflectionType(Object)

回傳 Type 一個可用於在給定物件時進行反射的 a。

GetReflectionType(Type)

回傳 a 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)

事件

名稱 Description
Refreshed

在清除元件的快取時發生。

適用於

另請參閱