共用方式為


XamlXmlWriter 類別

定義

使用 TextWriterXmlWriter 支援類別,將 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

備註

這個類別通常用於串行化案例。

如何使用 XamlXmlWriter

XamlWriter API 有數種方法可寫入不同類型的 XAML 節點。 這些統稱為檔中的 Write 方法 XamlWriterXamlXmlWriter 會使用數個內部狀態類別來判斷呼叫其中一個 Write 實作時該怎麼做。 Write 呼叫會使用狀態來判斷要求的元素、屬性或值是否可以寫入,還是擲回例外狀況。 例如,如果您呼叫 WriteEndObject,且目前節點位置 XamlXmlWriter 的狀態是在值或成員內,則會擲回例外狀況。 一般而言,XamlXmlWriter API 的呼叫端應該注意來自 XAML 讀取器和 XAML 節點數據流的目前 XAML 節點類型。 根據這項知識,呼叫端應該避免呼叫與目前節點類型無關的 Write API。

XAML 命名空間和 XamlXmlWriter

XamlXmlWriter 的 XAML 命名空間寫入行為很複雜,而且不限於對 WriteNamespace的明確呼叫。 相反地,其他 Write 呼叫,例如 WriteStartObject,可能需要在節點結構中的特定點寫入命名空間宣告。 XAML 寫入器會根據自己的邏輯產生前置詞,或使用來自 INamespacePrefixLookup 服務的信息來判斷慣用的前置詞。 此外,如果 XAML 命名空間宣告已適用且在其他地方宣告,明確 WriteNamespace 呼叫可能會延遲或可能傳回任何內容。

Write 方法例外狀況

XamlXmlWriter Write 方法擲回的例外狀況通常是 InvalidOperationExceptionXamlXmlWriterException

InvalidOperationException 通常表示 XAML 讀取器將無效的節點結構傳遞至 XAML 節點數據流。 在此情況下,節點結構無效,原因與 XAML 架構或 XAML 架構內容驗證無關。 相反地,節點數據流在其基本形式中無效。 例如,如果錯誤的 XAML 讀取器實作產生包含兩個連續 StartObject 節點的 XAML 節點資料流,則嘗試呼叫第二個 WriteStartObject 會擲回 InvalidOperationException。 所有 XAML 寫入器都會將這類作業視為無效。 另一個 InvalidOperationException 範例是當 XAML 命名空間資訊無法透過套用至目前節點數據流位置的 XAML 架構內容來取得時。

XamlXmlWriterException 指出這個特定 XAML 寫入器實作選擇根據其預期功能擲回例外狀況的例外狀況。 XamlXmlWriterException 可以指出 XamlXmlWriter 違反其本身狀態或設定的特定案例。 例如,XamlXmlWriterException 可能會因為嘗試將 XAML 命名空間資訊寫入 XamlXmlWriter 及其串行化格式不支援的位置,或在實例的 XamlXmlWriterSettings 禁止它時寫入重複的成員。

建構函式

XamlXmlWriter(Stream, XamlSchemaContext)

從數據流初始化 XamlXmlWriter 類別的新實例。

XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

使用寫入器設定物件,從數據流初始化 XamlXmlWriter 類別的新實例。

XamlXmlWriter(TextWriter, XamlSchemaContext)

TextWriter 基礎,初始化 XamlXmlWriter 類別的新實例。

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

使用 settings 物件,從 TextWriter 基礎初始化 XamlXmlWriter 類別的新實例。

XamlXmlWriter(XmlWriter, XamlSchemaContext)

XmlWriter 基礎,初始化 XamlXmlWriter 類別的新實例。

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

使用 settings 物件,從 XmlWriter 基礎初始化 XamlXmlWriter 類別的新實例。

屬性

IsDisposed

取得是否已呼叫 Dispose(Boolean)

(繼承來源 XamlWriter)
SchemaContext

取得這個 XamlXmlWriter 用於處理的 XAML 架構內容。

Settings

取得這個 XamlXmlWriter 用於 XAML 處理的寫入器設定。

方法

Close()

關閉 XAML 寫入器物件。

(繼承來源 XamlWriter)
Dispose(Boolean)

釋放 XamlXmlWriter 所使用的 Unmanaged 資源,並選擇性地釋放受控資源。

Equals(Object)

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

(繼承來源 Object)
Flush()

呼叫基礎 XmlWriterTextWriterFlush 方法,這個方法會寫入目前在緩衝區中的任何專案,然後關閉寫入器。

GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ToString()

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

(繼承來源 Object)
WriteEndMember()

將 XAML 結束成員節點寫入基礎 XmlWriterTextWriter。 如果 XAML 節點數據流的目前位置不在成員內,或內部寫入器狀態不支援寫入結束成員,則會擲回例外狀況。

WriteEndObject()

將 XAML 結束物件節點寫入基礎 XmlWriterTextWriter。 如果正在處理的 XAML 節點數據流目前位置與寫入結束物件不相容,則會擲回例外狀況。

WriteGetObject()

針對指定的物件是所寫入之屬性的預設值或隱含值,而不是在輸入 XAML 節點集中指定為物件值的情況下,寫入 物件。

WriteNamespace(NamespaceDeclaration)

將命名空間資訊寫入基礎 XmlWriterTextWriter。 可能會針對特定狀態擲回例外狀況;不過,可以改為延遲寫入命名空間資訊,直到正在處理的寫入器和 XAML 節點數據流到達可以插入 XAML 命名空間宣告的位置。

WriteNode(XamlReader)

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

(繼承來源 XamlWriter)
WriteStartMember(XamlMember)

將 XAML 啟動成員節點寫入基礎 XmlWriterTextWriter。 如果 XAML 節點數據流的目前位置位於另一個成員內,或者它不在可以寫入開始成員的範圍或寫入器狀態,則擲回例外狀況。

WriteStartObject(XamlType)

將 XAML start 物件節點寫入基礎 XmlWriterTextWriter。 如果 XAML 節點數據流的目前位置不在可以寫入開始物件的範圍中,或寫入器不是可以寫入開始物件的狀態,則擲回例外狀況。

WriteValue(Object)

將 XAML 值節點寫入基礎 XmlWriterTextWriter。 如果 XAML 節點數據流的目前位置對寫入值無效,或寫入器處於無法寫入值的狀態,則擲回例外狀況。

明確介面實作

IDisposable.Dispose()

請參閱 Dispose()

(繼承來源 XamlWriter)

適用於

另請參閱