XamlObjectWriter クラス

定義

作成元の XAML ノード ストリームからオブジェクト グラフを作成します。

public ref class XamlObjectWriter : System::Xaml::XamlWriter, System::Xaml::IXamlLineInfoConsumer
public class XamlObjectWriter : System.Xaml.XamlWriter, System.Xaml.IXamlLineInfoConsumer
type XamlObjectWriter = class
    inherit XamlWriter
    interface IXamlLineInfoConsumer
Public Class XamlObjectWriter
Inherits XamlWriter
Implements IXamlLineInfoConsumer
継承
XamlObjectWriter
実装

注釈

WriteメソッドXamlObjectWriterによって定義されているパターンを使用するようにXamlObjectWriterパターンをXamlWriter実装するWriteNodeメソッド。 WriteNode ロジックは、リーダー内の現在の Write 位置にあるノードの種類に応じて、メソッドを切り替えます。

スコープ

A XamlObjectWriter にはスコープの概念があります。つまり、 XamlObjectWriter 出力オブジェクト グラフの参照の概念ポイントを維持します。 特定のスコープの場合、特定の操作が有効または無効であるか、操作なしの結果が生成される可能性があります。 たとえば、インスタンスとして既に存在するオブジェクトに対して初期化用の書き込みディレクティブを呼び出 WriteStartMember すと、既定の実装では例外がスローされます。

カスタム XamlObjectWriter でスコープを追跡する方法として考えられるのは、ノード アクションをスタックまたはフレーム クラスに合わせることです。 スタックまたはフレームは、オブジェクト グラフの書き込み中に入力または終了されるオブジェクト モデル深度の各レベルのプッシュとポップを XamlObjectWriter 追跡できます。

コールバック

中間シナリオと高度な XamlObjectWriter シナリオをサポートするために、オブジェクト グラフを記述するメカニズムは、特定のアクションをコミットするとき、またはコミットしようとしているときに XamlObjectWriter 発生するコールバック エントリ ポイントを提供します。 一部のコールバックは設定で有効になっており、書き込むオブジェクトの種類やメンバーに固有ではありません。ただし、コールバック情報は、多くの場合、コンテキストで使用できます。または、コールバックを介して送信されるイベント データ内にあります。 関連するコールバックの一覧を次に示します。

  • 宣言された AfterBeginInitHandler コールバックは、スコープが新しいオブジェクトに移動し、作成された各オブジェクトのオブジェクト有効期間のフェーズで BeginInit 呼び出されます。

  • 宣言された AfterEndInitHandler コールバックは、スコープが新しいオブジェクトに移動し、作成された各オブジェクトのオブジェクト有効期間のフェーズで EndInit 呼び出されます。

  • 宣言された BeforePropertiesHandler コールバックは、スコープがオブジェクトで開始されるときに呼び出され、そのオブジェクト スコープの最初 WriteStartMember の呼び出しが行われたが、まだコミットされていないときに発生します。

  • 宣言された AfterPropertiesHandler コールバックは、スコープがオブジェクトで開始されたときに呼び出され、そのオブジェクト スコープの呼び出しが行われたがコミットされていないときに WriteEndObject 発生します。

  • によって宣言される XamlSetValueHandler コールバックは、呼び出されたときに OnSetValue 呼び出されます。

辞書キーの書き込み

既定の実装では、ディクショナリの XamlObjectWriter 内容がオブジェクト グラフに追加される前に、a Dictionary<TKey,TValue> の制約に対する型変換がサポートされています。 この方法では、オブジェクトによって実行時にジェネリック ディクショナリをキー設定でき、関連するジェネリック Add およびインデクサーの動作に一致させることができます。 ただし、基本 XamlObjectWriterに対して実装されているように、この機能は基底 Dictionary<TKey,TValue> クラスからのオブジェクト グラフの作成にのみ存在し、 Dictionary<TKey,TValue>.

破棄済みのチェック

XAML ライターは、遅延操作に使用される場合や、中間的に破棄された XAML ライター インスタンスに対して呼び出しが行われる場合に使用される可能性があります。 このような場合、 XamlObjectWriter さまざまな API がスロー ObjectDisposedException される可能性があります。

コンストラクター

XamlObjectWriter(XamlSchemaContext)

XamlObjectWriter で使用される XAML スキーマ コンテキストを使用して、XamlReader クラスの新しいインスタンスを初期化します。

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

XamlObjectWriter が使用するコンテキストとその設定を使用して、XamlReader クラスの新しいインスタンスを初期化します。

プロパティ

IsDisposed

Dispose(Boolean) が呼び出されているかどうかを取得します。

(継承元 XamlWriter)
Result

最後に書き込まれたオブジェクトを取得します。 通常、ノード ストリームがその末尾に達したとき、およびオブジェクト グラフが完成したときにだけ呼び出されます。

RootNameScope

XAML オブジェクト ライターの絶対ノード ルートの XAML 名前スコープを管理する INameScope サービスを取得します。

SchemaContext

アクティブな XAML スキーマ コンテキストを取得します。

ShouldProvideLineInfo

行情報サービスによって値が提供され、関連する場合に SetLineInfo(Int32, Int32) メソッドの呼び出しも行われるかどうかを報告する値を取得します。

メソッド

Clear()

すべての使用可能なフレームをリセットし、オブジェクト グラフをクリアします。

Close()

XAML ライター オブジェクトを閉じます。

(継承元 XamlWriter)
Dispose(Boolean)

XamlObjectWriter によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

Equals(Object)

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

(継承元 Object)
GetHashCode()

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

(継承元 Object)
GetType()

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

(継承元 Object)
MemberwiseClone()

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

(継承元 Object)
OnAfterBeginInit(Object)

この AfterBeginInitHandlerXamlObjectWriterSettings に関連付けられている任意の XamlObjectWriter メソッドを呼び出します。

OnAfterEndInit(Object)

この AfterEndInitHandlerXamlObjectWriterSettings に関連付けられている任意の XamlObjectWriter メソッドを呼び出します。

OnAfterProperties(Object)

この AfterPropertiesHandlerXamlObjectWriterSettings に関連付けられている任意の XamlObjectWriter 参照メソッドを呼び出します。

OnBeforeProperties(Object)

この BeforePropertiesHandlerXamlObjectWriterSettings に関連付けられている任意の XamlObjectWriter 参照メソッドを呼び出します。

OnSetValue(Object, XamlMember, Object)

XamlSetValueHandler イベント データの handledtrue でない場合に、このライターの XamlObjectWriterSettings に関連付けられている任意の XamlSetValueEventArgs 参照メソッドを呼び出します。

SetLineInfo(Int32, Int32)

SetLineInfo(Int32, Int32) を実装し、例外の行情報を提供します。

ToString()

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

(継承元 Object)
WriteEndMember()

現在のメンバー スコープを閉じます。閉じるときにメンバー スコープの値を書き込む場合があります。 新しいスコープは、メンバーの親オブジェクトのスコープになります。

WriteEndObject()

ライターの現在のオブジェクト スコープを閉じます。 新しいオブジェクト スコープは、親メンバーのスコープになります。

WriteGetObject()

指定したオブジェクトが親プロパティの既定または暗黙の値である場合に、概念上の StartObject をオブジェクト グラフに書き込みます。 暗黙の値は、入力 XAML ノード セットでオブジェクト値として指定されているのではなく、XAML スキーマ コンテキストから取得した情報およびバッキング型情報から取得します。

WriteNamespace(NamespaceDeclaration)

次のオブジェクト スコープまたはメンバー スコープに適用される名前空間の宣言を定義します。

WriteNode(XamlReader)

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

(継承元 XamlWriter)
WriteStartMember(XamlMember)

現在のオブジェクト スコープに新しいメンバー ノードを書き込みます。スコープは新しいメンバーのスコープになります。

WriteStartObject(XamlType)

現在のスコープにオブジェクト ノードを書き込みます。スコープを新しいオブジェクトのスコープに設定します。

WriteValue(Object)

現在のメンバー スコープに値を書き込みます。 現在のスコープがコレクション、ディクショナリ、または配列オブジェクトの内部にある場合、値はコレクション、ディクショナリ、または配列内に追加されます。

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

IDisposable.Dispose()

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

(継承元 XamlWriter)

適用対象

こちらもご覧ください