XamlMember 類別

定義

提供 XAML 型別系統識別項給 XAML 型別的成員。 這個識別項會由 XAML 讀取器和 XAML 寫入器在處理成員節點期間 (當 XAML 讀取器位於 StartMember 時) 使用,同時也會用於一般 XAML 型別系統邏輯。

public ref class XamlMember : IEquatable<System::Xaml::XamlMember ^>
public class XamlMember : IEquatable<System.Xaml.XamlMember>
type XamlMember = class
    interface IEquatable<XamlMember>
Public Class XamlMember
Implements IEquatable(Of XamlMember)
繼承
XamlMember
衍生
實作

備註

XamlMember可以使用三種方法傳回 XAML 成員的相關資訊:標準 Common Language Runtime (CLR) 反映;呼叫使用優化位旗標的內部 API 的僅限參考反映技術;或呼叫可能子類別所提供的 XamlMember API 虛擬覆寫 Lookup* 。 對於大部分使用.NET Framework XAML 服務 API 和 XamlMember API,您可以使用預設的 XAML 架構內容。 .NET Framework XAML 服務的預設 XAML 架構內容會針對類型系統使用 CLR 支援。 這可讓 XAML 讀取器和 XAML 寫入器使用定義于 中或可供 CLR 及其反映技術使用的任何類型或成員。

查閱* API 和 XamlMember 衍生類別

XamlMember 定義衍生類別可能會覆寫的數個虛擬成員。 這些成員的名稱一律以字串 Lookup 開頭。 API 名稱的其餘部分接著會參考虛擬方法影響的屬性。 例如, XamlMember 衍生類別可能會覆寫 LookupTargetType ,以影響基底定義屬性 TargetType 在衍生類別中傳回的內容。 您可以閱讀相關 Lookup* 方法的檔,以預測這類屬性在 或現有衍生類別中的 XamlMember 傳回值。

方法的目的是提供包含 XamlMember 基類的 Lookup* XAML 類型系統擴充技術。 藉由衍生 XamlMember 和覆寫 Lookup 虛擬成員,您可以在 XAML 類型系統中定義 XAML 架構的 XAML 成員概念,而不需系結至支援類型系統或技術的特定專案。 您也可以在此配置下使用提供的 XAML 架構內容,但仍傳回您想要的結果。

例如,請考慮 XamlMember 屬性 IsWritePublic 。 這個屬性會通知呼叫端,例如使用 XamlWriter 進行序列化的 作業,可以在目標物件上寫入這個成員的值。 在預設實作中,判斷成員是否可寫入,方法是使用對備份 CLR Type 的反映技術及其成員 (MemberInfo) 。 因此,根據預設,XAML 類型系統取決於 CLR 類型系統。 不過,您可以覆寫 API LookupIsWritePublic 來移除 XAML 類型系統報告的 IsWritePublic 此相依性。 在您的覆寫中,您可以使用其他判斷,例如您技術特有的中繼資料、針對固定 XAML 詞彙優化的主要查閱表,或判斷 XAML 成員是否可在 XAML 詞彙中寫入的各種其他策略。

建構沒有 XAML 架構內容的 XamlMember

的大部分建構函 XamlMember 式都需要 做為其初始化的一 XamlSchemaContext 部分。 許多內部 XamlSchemaContext 作業也需要 , XamlSchemaContext 例如從支援類型取得轉送的資訊。 當您使用 XamlMember API 時,通常會有 XamlSchemaContext 可從周圍建構取得的 ,例如 XamlWriter 。 在此情況下,您可以將參考傳遞 XamlSchemaContext 至需要 XAML 架構內容的所有 XAML 類型系統呼叫。

一個特定的建構函 XamlMember(String, XamlType, Boolean) 式不需要 XamlSchemaContext 。 不過, XamlMember 使用 簽章所建構的 XamlMember(String, XamlType, Boolean) 會針對 IsUnknown 傳回 true

對於涉及 XamlObjectWriter 的載入路徑,這類成員無法寫入物件圖形。 使用 .NET Framework XAML 服務實作時, XamlObjectWriter.WriteStartMember 呼叫會在 的相關 XamlMember IsUnknown 報表 true 中擲回 XamlObjectWriterException

除非您的實作可以處理 來自 XamlObjectWriter 的例外狀況,否則您不應該建構 IsUnknown true XamlMember 值為 的 ,或者您有其他方法來調整 XamlObjectWriter 行為。 例如,下列其中一或多個可能是實作的真:

建構函式

XamlMember(EventInfo, XamlSchemaContext)

使用 CLR 型別系統 XamlMemberEventInfo,初始化 XamlSchemaContext 類別的新執行個體。

XamlMember(EventInfo, XamlSchemaContext, XamlMemberInvoker)

使用 CLR 型別系統 XamlMemberEventInfo (包含 XamlSchemaContext 資訊),初始化 XamlMemberInvoker 類別的新執行個體。

XamlMember(PropertyInfo, XamlSchemaContext)

使用 CLR 型別系統 XamlMemberPropertyInfo,初始化 XamlSchemaContext 類別的新執行個體。

XamlMember(PropertyInfo, XamlSchemaContext, XamlMemberInvoker)

使用反映 XamlMemberPropertyInfo (包含 XamlSchemaContext 資訊),初始化 XamlMemberInvoker 類別的新執行個體。

XamlMember(String, MethodInfo, MethodInfo, XamlSchemaContext)

針對表示可附加屬性的 XamlMember,初始化 XamlMember 類別的新執行個體。

XamlMember(String, MethodInfo, MethodInfo, XamlSchemaContext, XamlMemberInvoker)

針對表示可附加屬性的 XamlMember (包含 XamlMember 資訊),初始化 XamlMemberInvoker 類別的新執行個體。

XamlMember(String, MethodInfo, XamlSchemaContext)

針對表示可附加事件的 XamlMember,初始化 XamlMember 類別的新執行個體。

XamlMember(String, MethodInfo, XamlSchemaContext, XamlMemberInvoker)

針對表示可附加事件的 XamlMember (包含 XamlMember 資訊),初始化 XamlMemberInvoker 類別的新執行個體。

XamlMember(String, XamlType, Boolean)

使用字串名稱並宣告 XamlMember 資訊,初始化 XamlType 類別的新執行個體。 使用此簽章建構的 XamlMember 具有諸多限制。

屬性

DeclaringType

取得型別的 XamlType,這個型別宣告與此 XamlMember 相關聯的成員。

DeferringLoader

取得 XamlValueConverter<TConverterBase> 物件,這個物件用於延後載入 XAML 宣告的物件。

DependsOn

取得 XamlMember 物件的清單。 這些物件會報告因與此 XamlMember 有相對初始設定順序而存在相依關聯性的成員。

Invoker

取得與這個 XamlMemberInvoker 相關聯的 XamlMember 實作。

IsAmbient

取得值,這個值表示此 XamlMember 是否報告為環境屬性。

IsAttachable

取得值,這個值表示此 XamlMember 是否為可附加的成員。

IsDirective

取得值,這個值表示此 XamlMember 是否為 XAML 指示詞。

IsEvent

取得值,這個值表示此 XamlMember 是否表示事件成員。

IsNameValid

取得值,這個值表示此 XamlMember 是否是使用有效的 xamlName 字串做為其 Name 進行初始化。

IsReadOnly

取得值,這個值表示此 XamlMember 是否表示唯讀成員。

IsReadPublic

取得值,這個值表示此 XamlMember 是否表示具有可呼叫之公用 get 存取子的成員。

IsUnknown

取得值,這個值表示用於型別和成員解析的支援系統是否無法解析成員。

IsWriteOnly

取得值,這個值表示此 XamlMember 是否表示唯寫成員。

IsWritePublic

取得值,這個值表示此 XamlMember 是否表示具有可呼叫之公用 set 存取子的成員。

MarkupExtensionBracketCharacters

定義標記延伸的左右括弧字元。

Name

取得宣告此 XamlMemberxamlName 名稱字串。

PreferredXamlNamespace

取得單一 XAML 命名空間 URI,這個 URI 識別此 XamlMember 的主要 XAML 命名空間。

SerializationVisibility

取得 DesignerSerializationVisibility 值,這個值表示視覺化設計工具應該如何處理成員。

TargetType

取得 XamlType 可能存在之型別的 XamlMember

Type

取得成員所使用型別的 XamlType

TypeConverter

取得 XamlValueConverter<TConverterBase> 物件,這個物件可用於建構 XAML 宣告物件的型別轉換。

UnderlyingMember

針對以 MemberInfoPropertyInfoMethodInfo 所建構的成員,取得可用的 CLR 型別系統 EventInfo

ValueSerializer

取得 XamlValueConverter<TConverterBase> 物件,這個物件用於對 XAML 宣告的物件進行值序列化。

方法

Equals(Object)

指出目前的物件和另一個物件是否相等。

Equals(XamlMember)

指出目前的物件是否等於另一個相同類型的物件。

GetHashCode()

傳回此物件的雜湊碼。

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
GetXamlNamespaces()

傳回這個 XAML 成員可能存在之 XAML 命名空間的清單。

LookupCustomAttributeProvider()

在衍生類別中實作時,傳回 ICustomAttributeProvider 實作。

LookupDeferringLoader()

傳回 XamlValueConverter<TConverterBase> 物件,這個物件用於延後載入 XAML 宣告的物件。

LookupDependsOn()

傳回 XamlMember 物件的清單。 這個清單中的項目會報告因與這個 XamlMember 有相對初始設定順序而存在相依關聯性的成員。

LookupInvoker()

傳回與這個 XamlMemberInvoker 相關聯的 XamlMember

LookupIsAmbient()

傳回這個 XamlMember 是否報告為環境屬性。

LookupIsEvent()

傳回這個 XamlMember 是否表示事件。

LookupIsReadOnly()

傳回這個 XamlMember 是否表示所需的唯讀屬性。

LookupIsReadPublic()

傳回這個 XamlMember 是否表示具有公用 get 存取子的屬性。

LookupIsUnknown()

傳回這個 XamlMember 是否表示用於型別和成員解析的支援系統所無法解析的成員。

LookupIsWriteOnly()

傳回這個 XamlMember 是否表示具有公用 set 存取子但沒有公用 get 存取子的成員。

LookupIsWritePublic()

傳回這個 XamlMember 是否表示具有公用 set 存取子的成員。

LookupMarkupExtensionBracketCharacters()

傳回標記延伸的左右括弧字元。

LookupTargetType()

傳回 XamlType 可能存在之型別的 XamlMember

LookupType()

傳回成員所使用型別的 XamlType

LookupTypeConverter()

傳回與這個 XamlMember 相關聯的型別轉換器實作。

LookupUnderlyingGetter()

傳回與這個 XamlMember 相關聯的 get 存取子。

LookupUnderlyingMember()

傳回與這個 MemberInfo 相關聯的 CLR 型別系統 XamlMember

LookupUnderlyingSetter()

傳回與這個 XamlMember 相關聯的 set 存取子。

LookupValueSerializer()

傳回與這個 XamlMember 相關聯的值序列化程式實作。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回這個 XamlMember 的字串表示。

運算子

Equality(XamlMember, XamlMember)

判斷兩個指定的 XamlMember 物件是否具有相同的值。

Inequality(XamlMember, XamlMember)

判斷兩個指定的 XamlMember 物件是否具有不同的值。

適用於

另請參閱