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

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

XAML 命名空間和 XamlXmlWriter

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

寫入方法例外狀況

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

通常 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()

呼叫基礎 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 開始物件節點寫入至基礎 XmlWriterTextWriter。 如果 XAML 節點資料流目前的位置不在可寫入開始成員的範圍或狀態,或是寫入器不在可寫入開始物件的狀態,則會擲回例外狀況。

WriteValue(Object)

將 XAML 值節點寫入至基礎 XmlWriterTextWriter。 如果 XAML 節點資料流目前的位置不適合寫入值,或是寫入器處於無法寫入值的狀態,則會擲回例外狀況。

明確介面實作

IDisposable.Dispose()

請參閱 Dispose()

(繼承來源 XamlWriter)

適用於

另請參閱