XamlXmlWriter クラス

定義

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

注釈

このクラスは、通常、シリアル化シナリオで使用されます。

XamlXmlWriter の使用方法

XamlWriter API には、さまざまな種類の XAML ノードを書き込むいくつかのメソッドがあります。 これらはまとめて、 のメソッドXamlWriterとしてWriteドキュメントで参照されます。 XamlXmlWriter では、いくつかの内部状態クラスを使用して、実装 Write の 1 つが呼び出されたときに何を行うかを決定します。 Write呼び出しでは、状態を使用して、要求された要素、属性、または値を書き込むことができるかどうか、または例外がスローされるかどうかを判断します。 たとえば、 を呼び出 WriteEndObject し、現在のノード位置の XamlXmlWriter 状態が値またはメンバー内にある場合、例外がスローされます。 通常、API の XamlXmlWriter 呼び出し元は、XAML リーダーと XAML ノード ストリームから取得される現在の XAML ノードの型を認識する必要があります。 この知識に基づいて、呼び出し元は、現在のノードの種類に関連しない API を呼び出 Write さないようにする必要があります。

XAML 名前空間と XamlXmlWriter

の XAML 名前空間の XamlXmlWriter 書き込み動作は複雑であり、 への明示的な呼び出しに WriteNamespace限定されません。 代わりに、 などのWriteStartObjectWriteの呼び出しでは、ノード構造の特定のポイントで名前空間宣言を書き込む必要がある場合があります。 XAML ライターは、独自のロジックによってプレフィックスを生成するか、サービスからの情報を INamespacePrefixLookup 使用して優先プレフィックスを決定します。 また、明示的な WriteNamespace 呼び出しでは、XAML 名前空間の宣言が既に適用され、他の場所で宣言されている場合は、遅延または何も返されない可能性があります。

Write メソッドの例外

メソッドによってXamlXmlWriterWriteスローされる例外は、通常、 または XamlXmlWriterExceptionのいずれかInvalidOperationExceptionです。

InvalidOperationException 、多くの場合、XAML リーダーが無効なノード構造を XAML ノード ストリームに渡したことを示します。 この場合、ノード構造は、XAML スキーマまたは XAML スキーマ コンテキストの検証に関連しない理由で無効です。 代わりに、ノード ストリームは基本的な形式では無効です。 たとえば、障害のある XAML リーダーの実装で、連続する 2 つのノードを含む XAML ノード ストリームが生成された場合、2 StartObject 番目 WriteStartObject の を呼び出そうとすると、 InvalidOperationExceptionがスローされます。 すべての XAML ライターでは、このような操作が無効であると見なされます。 のもう 1 つの例は、現在の 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 によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Flush()

基になる XmlWriter または TextWriterFlush メソッドを呼び出します。これにより、現在のバッファーの内容がすべて書き込まれ、ライターが閉じられます。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
WriteEndMember()

基になる XmlWriter または TextWriter に XAML 終了メンバー ノードを書き込みます。 XAML ノード ストリームの現在位置がメンバー内にない場合、または終了メンバーの書き込みが内部ライター状態でサポートされていない場合は、例外をスローします。

WriteEndObject()

基になる XmlWriter または TextWriter に XAML 終了オブジェクト ノードを書き込みます。 処理される XAML ノード ストリームの現在位置に終了オブジェクトの書き込みとの互換性がない場合は、例外をスローします。

WriteGetObject()

指定したオブジェクトが入力 XAML ノード セットでオブジェクト値として指定されているのではなく、書き込まれるプロパティの既定または暗黙の値である場合に、オブジェクトを書き込みます。

WriteNamespace(NamespaceDeclaration)

基になる XmlWriter または TextWriter に名前空間の情報を書き込みます。 特定の状態で例外がスローされる可能性がありますが、例外をスローする代わりに、XAML 名前空間の宣言を挿入できる位置にライターおよび処理される XAML ノード ストリームが到達するまで名前空間情報の書き込みを遅延させる場合があります。

WriteNode(XamlReader)

XAML リーダーのノード型 (NodeType) に基づいて切り替えを実行し、ライター実装の関連する Write メソッドを呼び出します。

(継承元 XamlWriter)
WriteStartMember(XamlMember)

基になる XmlWriter または TextWriter に XAML 開始メンバー ノードを書き込みます。 XAML ノード ストリームの現在位置が別のメンバー内にある場合、または開始メンバーを書き込むことのできるスコープまたはライター状態にない場合は、例外をスローします。

WriteStartObject(XamlType)

基になる XmlWriter または TextWriter に XAML 開始オブジェクト ノードを書き込みます。 XAML ノード ストリームの現在位置が開始オブジェクトを書き込むことのできるスコープにない場合、またはライターが開始オブジェクトを書き込むことのできる状態にない場合は、例外をスローします。

WriteValue(Object)

基になる XmlWriter または TextWriter に XAML 値ノードを書き込みます。 XAML ノード ストリームの現在位置が値の書き込みに対して無効である場合、またはライターが値を書き込めない状態にある場合は、例外をスローします。

明示的なインターフェイスの実装

IDisposable.Dispose()

以下を参照してください。Dispose()

(継承元 XamlWriter)

適用対象

こちらもご覧ください