XamlObjectWriter 類別

定義

從來源 XAML 節點資料流建立物件圖形。

public ref class XamlObjectWriter : System::Xaml::XamlWriter, System::Xaml::IXamlLineInfoConsumer
public class XamlObjectWriter : System.Xaml.XamlWriter, System.Xaml.IXamlLineInfoConsumer
type XamlObjectWriter = class
    inherit XamlWriter
    interface IXamlLineInfoConsumer
Public Class XamlObjectWriter
Inherits XamlWriter
Implements IXamlLineInfoConsumer
繼承
XamlObjectWriter
實作

備註

Write 作模式的方法 XamlObjectWriterXamlObjectWriter 讓 使用 XamlWriter 方法所 WriteNode 定義的 。 WriteNode 邏輯會根據讀取器中目前位置的節點類型而定,在方法之間 Write 切換。

影響範圍

XamlObjectWriter具有範圍的概念;也就是說,會在 XamlObjectWriter 其輸出物件圖形中維護概念參考點。 針對特定範圍,某些作業可能有效或無效,或產生無作業結果。 例如,如果您呼叫 WriteStartMember 來撰寫指示詞,以初始化已經存在做為實例的物件,則預設實作會擲回例外狀況。

自訂 XamlObjectWriter 中追蹤範圍的可能技巧是將節點動作與堆疊或框架類別對齊。 堆疊或框架可以追蹤寫入物件圖形時 XamlObjectWriter 所輸入或結束之每個物件模型深度層級的推播和快顯。

回撥

為了支援中繼和進階 XamlObjectWriter 案例,撰寫物件圖形的機制會提供回呼進入點,這些進入點會在認可或即將認可特定動作時 XamlObjectWriter 發生。 某些回呼會在設定中啟用,而且不是物件類型或正在寫入的成員專屬的;不過,回呼資訊通常可在內容中使用,或是在透過回呼傳送的事件資料中。 以下是相關的回呼清單:

撰寫字典索引鍵

的預設實 XamlObjectWriter 作支援 在字典內容加入至物件圖形之前,對 的條件約束 Dictionary<TKey,TValue> 進行型別轉換。 如此一來,泛型字典就可以由 物件在執行時間進行索引鍵,而且可以符合相關的泛型 Add 和索引子行為。 不過,如基底 XamlObjectWriter 實作,這項功能僅適用于從基 Dictionary<TKey,TValue> 類建立物件圖形,不適用於 的 Dictionary<TKey,TValue> 衍生類別。

檢查已處置

XAML 寫入器可能用於延後作業,或針對暫時處置的 XAML 寫入器實例進行呼叫。 的各種 API XamlObjectWriter 可能會在這些情況下擲回 ObjectDisposedException

建構函式

XamlObjectWriter(XamlSchemaContext)

使用 XamlObjectWriter 所使用的 XAML 結構描述內容,初始化 XamlReader 類別的新執行個體。

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

使用 XamlObjectWriter 所使用的內容和其設定,初始化 XamlReader 類別的新執行個體。

屬性

IsDisposed

取得是否已呼叫 Dispose(Boolean)

(繼承來源 XamlWriter)
Result

取得最後一個寫入的物件。 通常只有在節點資料流位在結尾且物件圖形完成時才會加以呼叫。

RootNameScope

取得 INameScope 服務,這個服務會維護 XAML 物件寫入器之絕對節點根的 XAML 名稱範圍。

SchemaContext

取得作用中 XAML 結構描述內容。

ShouldProvideLineInfo

取得值,這個值會報告行資訊服務是否應該提供值 (因此也應該在必要時呼叫 SetLineInfo(Int32, Int32) 方法)。

方法

Clear()

重設所有可能的框架並清除物件圖形。

Close()

關閉 XAML 寫入器物件。

(繼承來源 XamlWriter)
Dispose(Boolean)

釋放 XamlObjectWriter 所使用的 Unmanaged 資源,並選擇性釋放 Managed 資源。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnAfterBeginInit(Object)

叫用與這個 AfterBeginInitHandlerXamlObjectWriterSettings 相關聯的任何 XamlObjectWriter 方法。

OnAfterEndInit(Object)

叫用與這個 AfterEndInitHandlerXamlObjectWriterSettings 相關聯的任何 XamlObjectWriter 方法。

OnAfterProperties(Object)

叫用與這個 AfterPropertiesHandlerXamlObjectWriterSettings 相關聯的任何 XamlObjectWriter 參考方法。

OnBeforeProperties(Object)

叫用與這個 BeforePropertiesHandlerXamlObjectWriterSettings 相關聯的任何 XamlObjectWriter 參考方法。

OnSetValue(Object, XamlMember, Object)

叫用與這個寫入器之 XamlSetValueHandler 相關聯的任何 XamlObjectWriterSettings 參考方法 (只要 XamlSetValueEventArgs 事件資料中的 handled 不是 true 即可)。

SetLineInfo(Int32, Int32)

實作 SetLineInfo(Int32, Int32),並提供例外狀況的行資訊。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
WriteEndMember()

關閉目前成員範圍,並且可能在關閉成員範圍期間寫入其值。 新的範圍會成為成員的父物件範圍。

WriteEndObject()

關閉寫入器中的目前物件範圍。 新的物件範圍會成為父成員範圍。

WriteGetObject()

當指定之物件為父屬性的預設值或隱含值時,將概念 StartObject 寫入物件圖形。 隱含值來自從 XAML 結構描述內容及支援型別資訊取得的資訊,而非指定為在輸入 XAML 節點集中的物件值。

WriteNamespace(NamespaceDeclaration)

定義會套用至下一個物件範圍或成員範圍的命名空間宣告。

WriteNode(XamlReader)

根據來自 XAML 讀取器的節點型別 (NodeType) 執行切換,並呼叫寫入器實作的相關 Write 方法。

(繼承來源 XamlWriter)
WriteStartMember(XamlMember)

將新的成員節點寫入至目前物件範圍,而這個範圍會成為新的成員範圍。

WriteStartObject(XamlType)

將物件節點寫入至目前範圍,並將這個範圍設為新的物件範圍。

WriteValue(Object)

將值寫入至目前成員範圍。 如果目前範圍在集合、字典或陣列物件內,則應將此值加入至集合、字典或陣列。

明確介面實作

IDisposable.Dispose()

請參閱 Dispose()

(繼承來源 XamlWriter)

適用於

另請參閱