XamlObjectWriter クラス

定義

作成元の XAML ノード ストリームからオブジェクト グラフを作成します。Creates an object graph from a source XAML node stream.

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メソッドで定義されているを使用するように、のメソッドはパターンを実装します。 WriteNodeThe Write methods of XamlObjectWriter implement a pattern so that the XamlObjectWriter uses the XamlWriter that is defined by the WriteNode method. WriteNodeリーダー内の現在Writeの位置にあるノードの種類に応じて、メソッド間でロジックが切り替わります。WriteNode logic switches between the Write methods, depending on which node type is at the current position in the reader.

スコープScope

にはスコープの概念がXamlObjectWriter あります。つまり、では、出力オブジェクトグラフ内の参照の概念点が維持されます。XamlObjectWriterA XamlObjectWriter has a concept of scope; that is, the XamlObjectWriter maintains a conceptual point of reference in its output object graph. 特定のスコープでは、特定の操作が有効であるか無効であるか、操作なしの結果が生成されることがあります。For a particular scope, certain operations might be valid or invalid, or produce a no-operation result. たとえば、を呼び出しWriteStartMemberて、インスタンスとして既に存在するオブジェクトに対して初期化用にディレクティブを書き込む場合、既定の実装では例外がスローされます。For example, if you call WriteStartMember to write directives for initialization on an object that already exists as an instance, the default implementation throws an exception.

カスタムXamlObjectWriterのでスコープを追跡する方法としては、ノードアクションをスタックまたはフレームクラスに揃える方法があります。A possible technique for tracking scope in a custom XamlObjectWriter is to align the node actions with a stack or frame class. スタックまたはフレームは、がXamlObjectWriterオブジェクトグラフを書き込むときに入力または終了されたオブジェクトモデルの深さのレベルごとに、プッシュとポップを追跡できます。The stack or frame can keep track of push and pop for each level of object-model depth that is entered or exited while the XamlObjectWriter writes the object graph.

関数Callbacks

中間および高度なXamlObjectWriterシナリオをサポートするために、オブジェクトグラフを記述する機構は、がXamlObjectWriterコミットまたはコミットしようとしたときに発生するコールバックエントリポイントを提供します。To support intermediate and advanced XamlObjectWriter scenarios, the mechanism of writing an object graph provides callback entry points that occur when a XamlObjectWriter commits or is about to commit certain actions. 一部のコールバックは、設定で有効になっており、オブジェクトの種類や記述されているメンバーに固有ではありません。ただし、コールバック情報は、多くの場合、コンテキストで使用することも、コールバックを介して送信されるイベントデータ内で使用することもできます。Some callbacks are enabled in the settings and are not specific to the object type or the member being written; however, callback information is often available in context or is in the event data that is sent through the callback. 関連するコールバックの一覧を次に示します。The following is a list of relevant callbacks:

  • によってAfterBeginInitHandler宣言されたコールバックは、作成されたオブジェクトごとに、 BeginInitスコープが新しいオブジェクトに移動し、オブジェクトの有効期間のフェーズで呼び出されたときに呼び出されます。The callback that is declared by AfterBeginInitHandler is invoked when the scope goes to a new object and at the BeginInit phase of object lifetime for each created object.

  • によってAfterEndInitHandler宣言されたコールバックは、作成されたオブジェクトごとに、 EndInitスコープが新しいオブジェクトに移動し、オブジェクトの有効期間のフェーズで呼び出されたときに呼び出されます。The callback that is declared by AfterEndInitHandler is invoked when the scope goes to a new object and at the EndInit phase of object lifetime for each created object.

  • によってBeforePropertiesHandler宣言されたコールバックは、オブジェクト内でスコープが開始されたときWriteStartMemberに呼び出され、そのオブジェクトスコープへの最初の呼び出しが行われたが、まだコミットされていない場合に発生します。The callback that is declared by BeforePropertiesHandler is invoked when the scope starts in an object, and occurs when the first WriteStartMember call to that object scope is made but not yet committed.

  • によってAfterPropertiesHandler宣言されたコールバックは、オブジェクト内でスコープが開始されたWriteEndObjectときに呼び出され、そのオブジェクトスコープへの呼び出しが行われているが、まだコミットされていない場合に発生します。The callback that is declared by AfterPropertiesHandler is invoked when the scope starts in an object, and happens when the WriteEndObject call to that object scope is made but not yet committed.

  • によってXamlSetValueHandler宣言されたコールバックOnSetValueは、が呼び出されたときに呼び出されます。The callback that is declared by XamlSetValueHandler is invoked when OnSetValue is called.

ディクショナリキーの書き込みWriting Dictionary Keys

の既定のXamlObjectWriter実装では、ディクショナリの内容がオブジェクトDictionary<TKey,TValue>グラフに追加される前に、の制約に対する型変換がサポートされています。The default implementation of XamlObjectWriter supports type conversion on the constraints of a Dictionary<TKey,TValue> before the dictionary contents are added to the object graph. この方法では、ジェネリックディクショナリを実行時にオブジェクトによってキー指定でき、関連するAddジェネリックおよびインデクサーの動作と一致させることができます。In this manner, a generic dictionary can be keyed at run time by objects and can match the relevant generic Add and indexer behavior. ただし、ベースXamlObjectWriterとして実装されているように、この機能は、のDictionary<TKey,TValue> Dictionary<TKey,TValue>派生クラスではなく、基本クラスからのオブジェクトグラフの作成にのみ存在します。However, as implemented for the base XamlObjectWriter, this capability exists only for object graph creation from the base Dictionary<TKey,TValue> class and not for derived classes of Dictionary<TKey,TValue>.

破棄されたかどうかを確認しますChecks for Disposed

XAML ライターは、遅延操作や、中間で破棄された XAML ライターインスタンスに対して呼び出しが行われる場合に使用されることがあります。XAML writers are potentially used for deferred operations or where a call is made against a XAML writer instance that has been disposed in the interim. これらの場合XamlObjectWriter 、のObjectDisposedExceptionさまざまな api がスローされる可能性があります。Various APIs of XamlObjectWriter might throw ObjectDisposedException in these cases.

コンストラクター

XamlObjectWriter(XamlSchemaContext)

XamlObjectWriter で使用される XAML スキーマ コンテキストを使用して、XamlReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the XamlObjectWriter class using the XAML schema context that is used by a XamlReader.

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

XamlObjectWriter が使用するコンテキストとその設定を使用して、XamlReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the XamlObjectWriter class using the context that is used by a XamlReader and its settings.

プロパティ

IsDisposed

Dispose(Boolean) が呼び出されているかどうかを取得します。Gets whether Dispose(Boolean) has been called.

(継承元 XamlWriter)
Result

最後に書き込まれたオブジェクトを取得します。Gets the last object that was written. 通常、ノード ストリームがその末尾に達したとき、およびオブジェクト グラフが完成したときにだけ呼び出されます。Typically only called when the node stream is at its end and the object graph is complete.

RootNameScope

XAML オブジェクト ライターの絶対ノード ルートの XAML 名前スコープを管理する INameScope サービスを取得します。Gets the INameScope service that maintains the XAML namescope for the absolute node root of the XAML object writer.

SchemaContext

アクティブな XAML スキーマ コンテキストを取得します。Gets the active XAML schema context.

ShouldProvideLineInfo

行情報サービスによって値が提供され、関連する場合に SetLineInfo(Int32, Int32) メソッドの呼び出しも行われるかどうかを報告する値を取得します。Gets a value that reports whether a line information service should provide values and therefore, should also call the SetLineInfo(Int32, Int32) method when it is relevant.

メソッド

Clear()

すべての使用可能なフレームをリセットし、オブジェクト グラフをクリアします。Resets all possible frames and clears the object graph.

Close()

XAML ライター オブジェクトを閉じます。Closes the XAML writer object.

(継承元 XamlWriter)
Dispose(Boolean)

XamlObjectWriter によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the XamlObjectWriter, and optionally, releases the managed resources.

Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
OnAfterBeginInit(Object)

この AfterBeginInitHandlerXamlObjectWriterSettings に関連付けられている任意の XamlObjectWriter メソッドを呼び出します。Invokes any AfterBeginInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterEndInit(Object)

この AfterEndInitHandlerXamlObjectWriterSettings に関連付けられている任意の XamlObjectWriter メソッドを呼び出します。Invokes any AfterEndInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterProperties(Object)

この AfterPropertiesHandlerXamlObjectWriterSettings に関連付けられている任意の XamlObjectWriter 参照メソッドを呼び出します。Invokes any AfterPropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnBeforeProperties(Object)

この BeforePropertiesHandlerXamlObjectWriterSettings に関連付けられている任意の XamlObjectWriter 参照メソッドを呼び出します。Invokes any BeforePropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnSetValue(Object, XamlMember, Object)

XamlSetValueHandler イベント データの handledtrue でない場合に、このライターの XamlObjectWriterSettings に関連付けられている任意の XamlSetValueEventArgs 参照メソッドを呼び出します。Invokes any XamlSetValueHandler referenced method that is associated with XamlObjectWriterSettings for this writer, as long as handled in XamlSetValueEventArgs event data is not true.

SetLineInfo(Int32, Int32)

SetLineInfo(Int32, Int32) を実装し、例外の行情報を提供します。Implements SetLineInfo(Int32, Int32) and provides line information for exceptions.

ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)
WriteEndMember()

現在のメンバー スコープを閉じます。閉じるときにメンバー スコープの値を書き込む場合があります。Closes the current member scope, and may write the value of the member scope while it closes. 新しいスコープは、メンバーの親オブジェクトのスコープになります。The new scope becomes the parent object scope of the member.

WriteEndObject()

ライターの現在のオブジェクト スコープを閉じます。Closes the current object scope in the writer. 新しいオブジェクト スコープは、親メンバーのスコープになります。The new object scope becomes the parent member scope.

WriteGetObject()

指定したオブジェクトが親プロパティの既定または暗黙の値である場合に、概念上の StartObject をオブジェクト グラフに書き込みます。Writes the conceptual StartObject into the object graph when the specified object is a default or implicit value of the parent property. 暗黙の値は、入力 XAML ノード セットでオブジェクト値として指定されているのではなく、XAML スキーマ コンテキストから取得した情報およびバッキング型情報から取得します。The implicit value comes from information that is obtained from the XAML schema context and backing type information, instead of being specified as an object value in the input XAML node set.

WriteNamespace(NamespaceDeclaration)

次のオブジェクト スコープまたはメンバー スコープに適用される名前空間の宣言を定義します。Defines a namespace declaration that applies to the next object scope or member scope.

WriteNode(XamlReader)

XAML リーダーのノード型 (NodeType) に基づいて切り替えを実行し、ライター実装の関連する Write メソッドを呼び出します。Performs switching based on node type from the XAML reader (NodeType) and calls the relevant Write method for the writer implementation.

(継承元 XamlWriter)
WriteStartMember(XamlMember)

現在のオブジェクト スコープに新しいメンバー ノードを書き込みます。スコープは新しいメンバーのスコープになります。Writes a new member node into the current object scope, and the scope becomes a new member scope.

WriteStartObject(XamlType)

現在のスコープにオブジェクト ノードを書き込みます。スコープを新しいオブジェクトのスコープに設定します。Writes an object node into the current scope, and sets the scope to a new object scope.

WriteValue(Object)

現在のメンバー スコープに値を書き込みます。Writes a value to the current member scope. 現在のスコープがコレクション、ディクショナリ、または配列オブジェクトの内部にある場合、値はコレクション、ディクショナリ、または配列内に追加されます。If the current scope is inside a collection, dictionary, or array object, the value should be added to the collection, dictionary, or array.

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

IDisposable.Dispose()

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

(継承元 XamlWriter)

適用対象

こちらもご覧ください