次の方法で共有


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

XAML 名前空間と XamlXmlWriter

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

Write メソッドの例外

XamlXmlWriter Write メソッドによってスローされる例外は、通常、InvalidOperationException または XamlXmlWriterExceptionです。

InvalidOperationException は、多くの場合、XAML リーダーが無効なノード構造を XAML ノード ストリームに渡したことを示します。 この場合、ノード構造は、XAML スキーマまたは XAML スキーマ コンテキストの検証に関連しない理由で無効です。 代わりに、ノード ストリームは基本的な形式では無効です。 たとえば、障害のある XAML リーダーの実装で、連続する 2 つの StartObject ノードを含む XAML ノード ストリームが生成された場合、2 番目の WriteStartObject を呼び出そうとすると、InvalidOperationExceptionがスローされます。 すべての XAML ライターは、このような操作が無効であると見なします。 InvalidOperationException のもう 1 つの例は、現在のノード ストリーム位置に適用される XAML スキーマ コンテキストで XAML 名前空間情報が使用できない場合です。

XamlXmlWriterException は、この特定の XAML ライター実装が目的の機能に基づいて例外をスローすることを選択する例外を示します。 XamlXmlWriterException は、XamlXmlWriter が独自の状態または設定に違反する特定のケースを示すことができます。 たとえば、XamlXmlWriterException は、XamlXmlWriter とそのシリアル化形式でサポートされていない位置に XAML 名前空間情報を書き込もうとしたり、インスタンスの XamlXmlWriterSettings が禁止したときに重複するメンバーを書き込んだりした場合に発生する可能性があります。

コンストラクター

XamlXmlWriter(Stream, XamlSchemaContext)

ストリームから XamlXmlWriter クラスの新しいインスタンスを初期化します。

XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

ライター設定オブジェクトを使用して、ストリームから XamlXmlWriter クラスの新しいインスタンスを初期化します。

XamlXmlWriter(TextWriter, XamlSchemaContext)

TextWriter 基準で、XamlXmlWriter クラスの新しいインスタンスを初期化します。

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

設定オブジェクトを使用して、XamlXmlWriter クラスの新しいインスタンスを TextWriter ベースで初期化します。

XamlXmlWriter(XmlWriter, XamlSchemaContext)

XmlWriter 基準で、XamlXmlWriter クラスの新しいインスタンスを初期化します。

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)

適用対象

こちらもご覧ください