XamlObjectWriter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從來源 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
- 繼承
- 實作
備註
實 Write
作模式的方法 XamlObjectWriter , XamlObjectWriter 讓 使用 XamlWriter 方法所 WriteNode 定義的 。 WriteNode 邏輯會根據讀取器中目前位置的節點類型而定,在方法之間 Write
切換。
影響範圍
XamlObjectWriter具有範圍的概念;也就是說,會在 XamlObjectWriter 其輸出物件圖形中維護概念參考點。 針對特定範圍,某些作業可能有效或無效,或產生無作業結果。 例如,如果您呼叫 WriteStartMember 來撰寫指示詞,以初始化已經存在做為實例的物件,則預設實作會擲回例外狀況。
自訂 XamlObjectWriter 中追蹤範圍的可能技巧是將節點動作與堆疊或框架類別對齊。 堆疊或框架可以追蹤寫入物件圖形時 XamlObjectWriter 所輸入或結束之每個物件模型深度層級的推播和快顯。
回撥
為了支援中繼和進階 XamlObjectWriter 案例,撰寫物件圖形的機制會提供回呼進入點,這些進入點會在認可或即將認可特定動作時 XamlObjectWriter 發生。 某些回呼會在設定中啟用,而且不是物件類型或正在寫入的成員專屬的;不過,回呼資訊通常可在內容中使用,或是在透過回呼傳送的事件資料中。 以下是相關的回呼清單:
當範圍移至新物件時,會叫用 所 AfterBeginInitHandler 宣告的回呼,以及 BeginInit 每個已建立物件的物件存留期階段。
當範圍移至新物件時,會叫用 所 AfterEndInitHandler 宣告的回呼,以及 EndInit 每個已建立物件的物件存留期階段。
在 物件中啟動範圍時,會叫用 所 BeforePropertiesHandler 宣告的回呼,並在第一次 WriteStartMember 呼叫該物件範圍但尚未認可時發生。
在 物件中啟動範圍時,會叫用 所 AfterPropertiesHandler 宣告的回呼,而且會在對該物件範圍的呼叫進行但尚未認可時 WriteEndObject 發生。
呼叫 時 OnSetValue ,會叫用 所 XamlSetValueHandler 宣告的回呼。
撰寫字典索引鍵
的預設實 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) 方法)。 |
方法
明確介面實作
IDisposable.Dispose() |
請參閱 Dispose()。 (繼承來源 XamlWriter) |