TypeDescriptor 類別

定義

提供元件特性的相關資訊,例如其屬性 (attribute)、屬性 (property) 與事件。 此類別無法獲得繼承。

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 和屬性 (Attribute) 陣列,從現有的屬性 (Property) 描述項建立新的屬性 (Property) 描述項。

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

清除元件快取時發生。

適用於

另請參閱