共用方式為


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)

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

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,這個 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

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

適用於

另請參閱