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 정의 되는 WriteNode 메서드.The 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

A XamlObjectWriter 범위는 개념이, XamlObjectWriter 개념적 출력 개체 그래프에 대 한 참조 지점 유지 관리 합니다.A 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 인스턴스로 이미 있는 개체의 초기화에 대 한 지시문 쓸 기본 구현에서는 예외를 throw 합니다.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. 다양 한 Api XamlObjectWriter throw 할 수 있습니다 ObjectDisposedException 이러한 경우입니다.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)

AfterBeginInitHandler에 대해 XamlObjectWriterSettings와 연결된 XamlObjectWriter 메서드를 호출합니다.Invokes any AfterBeginInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterEndInit(Object)

AfterEndInitHandler에 대해 XamlObjectWriterSettings와 연결된 XamlObjectWriter 메서드를 호출합니다.Invokes any AfterEndInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterProperties(Object)

AfterPropertiesHandler에 대해 XamlObjectWriterSettings와 연결된 XamlObjectWriter 참조 메서드를 호출합니다.Invokes any AfterPropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnBeforeProperties(Object)

BeforePropertiesHandler에 대해 XamlObjectWriterSettings와 연결된 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()

현재 개체를 나타내는 string을 반환합니다.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)

적용 대상

추가 정보