XamlObjectWriter.WriteGetObject メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したオブジェクトが親プロパティの既定値または暗黙的な値である場合に、オブジェクト グラフに概念 StartObject を書き込みます。 暗黙的な値は、入力 XAML ノード セットでオブジェクト値として指定されるのではなく、XAML スキーマ コンテキストとバッキング型情報から取得された情報から取得されます。
public:
override void WriteGetObject();
public override void WriteGetObject();
override this.WriteGetObject : unit -> unit
Public Overrides Sub WriteGetObject ()
注釈
WriteGetObjectによる書き込みとWriteStartObjectによる書き込みの違いは、結果のオブジェクト グラフで確認できます。 WriteGetObject は型のインスタンスを構築しません。 WriteGetObject API には、構築する内容をオブジェクト グラフに通知する情報がないためです。 代わりに、親プロパティが初期化されたときにオブジェクトが作成されました。そのため、 XamlObjectWriter はそれを構築する必要はありません。 これに対し、 WriteStartObject は、その型のインスタンスを構築してオブジェクト グラフに挿入することを指定します。
XAML ノード ストリームを一連のフレームと考えると、 WriteGetObject は WriteEndObject 呼び出しとバランスが取られます。 したがって、 WriteGetObject と WriteStartObject 呼び出しの数は、XAML ノード ストリームの完全なオブジェクト書き込み評価の一環として、 WriteEndObject 呼び出しの数と等しい必要があります。
オブジェクト グラフ内の暗黙的なオブジェクトの概念 StartObject 位置が必要です。オブジェクト値自体は暗黙的な既定値ですが、そのオブジェクトには XAML ノード ストリームに基づいて書き込む必要があるメンバーが残っている可能性があるためです。 これが発生する一般的なシナリオは、 XamlObjectWriter がコレクション プロパティのメンバー ノードを書き込み、コレクションの初期化がコレクション プロパティを所有するオブジェクトの作成を暗黙的に行う場合です。