XamlXmlWriter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用 TextWriter 或 XmlWriter 支援類別,將 XAML 節點資料流寫入成文字或標記序列化形式。
public ref class XamlXmlWriter : System::Xaml::XamlWriter
public class XamlXmlWriter : System.Xaml.XamlWriter
type XamlXmlWriter = class
inherit XamlWriter
Public Class XamlXmlWriter
Inherits XamlWriter
- 繼承
備註
這個類別通常用於序列化案例。
如何使用 XamlXmlWriter
XamlWriterAPI 有數種方法可寫入不同類型的 XAML 節點。 這些統稱為 檔中 Write
的 XamlWriter 方法。 XamlXmlWriter 會使用數個內部狀態類別來判斷呼叫其中 Write
一個實作時要執行的動作。 Write
呼叫會使用狀態來判斷是否可寫入要求的元素、屬性或值,或是否擲回例外狀況。 例如,如果您呼叫 WriteEndObject ,且目前節點位置的狀態 XamlXmlWriter 位於值或成員內,則會擲回例外狀況。 一般而言,API 的 XamlXmlWriter 呼叫端應該注意來自 XAML 讀取器和 XAML 節點資料流程的目前 XAML 節點類型。 根據這項知識,呼叫端應該避免呼叫 Write
與目前節點類型無關的 API。
XAML 命名空間和 XamlXmlWriter
的 XamlXmlWriter XAML 命名空間寫入行為很複雜,而且不限於 對 的明確呼叫 WriteNamespace 。 相反地,其他 Write
呼叫,例如 WriteStartObject ,可能需要在節點結構中的特定點寫入命名空間宣告。 XAML 寫入器會以自己的邏輯產生前置詞,或使用來自服務的資訊 INamespacePrefixLookup 來判斷慣用的前置詞。 此外,如果 XAML 命名空間宣告已適用,並在其他地方宣告,則明確 WriteNamespace 呼叫可能會延遲或傳回任何內容。
寫入方法例外狀況
方法擲回的 XamlXmlWriterWrite
例外狀況通常是 InvalidOperationException 或 XamlXmlWriterException 。
通常 InvalidOperationException 表示 XAML 讀取器已將不正確節點結構傳遞至 XAML 節點資料流程。 在此情況下,節點結構無效,原因與 XAML 架構或 XAML 架構內容驗證無關。 相反地,節點資料流程在基本形式中無效。 例如,如果錯誤的 XAML 讀取器實作產生包含兩個連續 StartObject
節點的 XAML 節點資料流程,則嘗試呼叫第二個 WriteStartObjectInvalidOperationException 節點會擲回 。 所有 XAML 寫入器都會將這類作業視為無效。 另一個範例 InvalidOperationException 是,當 XAML 命名空間資訊無法透過套用至目前節點資料流程位置的 XAML 架構內容取得時。
XamlXmlWriterException表示這個特定 XAML 寫入器實作選擇根據其預期功能擲回例外狀況的例外狀況。 XamlXmlWriterException可以指出 違反其本身狀態或設定的特定案例 XamlXmlWriter 。 例如, XamlXmlWriterException 可能是因為嘗試將 XAML 命名空間資訊寫入到 和 其序列化格式不支援的位置 XamlXmlWriter ,或在實例 XamlXmlWriterSettings 禁止時寫入重複的成員。
建構函式
XamlXmlWriter(Stream, XamlSchemaContext) |
從資料流初始化 XamlXmlWriter 類別的新執行個體。 |
XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings) |
使用寫入器設定物件,從資料流初始化 XamlXmlWriter 類別的新執行個體。 |
XamlXmlWriter(TextWriter, XamlSchemaContext) |
從 XamlXmlWriter 基準初始化 TextWriter 類別的新執行個體。 |
XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings) |
使用設定物件,從 XamlXmlWriter 基準初始化 TextWriter 類別的新執行個體。 |
XamlXmlWriter(XmlWriter, XamlSchemaContext) |
從 XamlXmlWriter 基準初始化 XmlWriter 類別的新執行個體。 |
XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings) |
使用設定物件,從 XamlXmlWriter 基準初始化 XmlWriter 類別的新執行個體。 |
屬性
IsDisposed |
取得是否已呼叫 Dispose(Boolean)。 (繼承來源 XamlWriter) |
SchemaContext |
取得這個 XamlXmlWriter 處理時使用的 XAML 結構描述內容。 |
Settings |
取得這個 XamlXmlWriter 處理 XAML 時使用的寫入器設定。 |
方法
Close() |
關閉 XAML 寫入器物件。 (繼承來源 XamlWriter) |
Dispose(Boolean) |
釋放 XamlXmlWriter 所使用的 Unmanaged 資源,並選擇性釋放 Managed 資源。 |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
Flush() |
呼叫基礎 XmlWriter 或 TextWriter 的 |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |
WriteEndMember() |
將 XAML 結束成員節點寫入至基礎 XmlWriter 或 TextWriter。 如果 XAML 節點資料流目前的位置不在成員內,或內部寫入器狀態不支援寫入至結束成員,則會擲回例外狀況。 |
WriteEndObject() |
將 XAML 結束物件節點寫入至基礎 XmlWriter 或 TextWriter。 如果處理中 XAML 節點資料流目前的位置不適合寫入結束物件,則會擲回例外狀況。 |
WriteGetObject() |
當指定之物件為寫入中屬性的預設值或隱含值 (而非指定為在輸入 XAML 節點集中的物件值) 時,寫入物件。 |
WriteNamespace(NamespaceDeclaration) |
將命名空間資訊寫入至基礎 XmlWriter 或 TextWriter。 可能會針對特定狀態擲回例外狀況,但也可能會延後寫入命名空間資訊,直到寫入器及處理中 XAML 節點資料流到達可以插入 XAML 命名空間宣告的位置為止。 |
WriteNode(XamlReader) |
根據來自 XAML 讀取器的節點型別 (NodeType) 執行切換,並呼叫寫入器實作的相關 |
WriteStartMember(XamlMember) |
將 XAML 開始成員節點寫入至基礎 XmlWriter 或 TextWriter。 如果 XAML 節點資料流目前的位置在另一個成員內,或是不在可寫入開始成員的範圍或寫入器狀態,則會擲回例外狀況。 |
WriteStartObject(XamlType) |
將 XAML 開始物件節點寫入至基礎 XmlWriter 或 TextWriter。 如果 XAML 節點資料流目前的位置不在可寫入開始成員的範圍或狀態,或是寫入器不在可寫入開始物件的狀態,則會擲回例外狀況。 |
WriteValue(Object) |
將 XAML 值節點寫入至基礎 XmlWriter 或 TextWriter。 如果 XAML 節點資料流目前的位置不適合寫入值,或是寫入器處於無法寫入值的狀態,則會擲回例外狀況。 |
明確介面實作
IDisposable.Dispose() |
請參閱 Dispose()。 (繼承來源 XamlWriter) |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應