다음을 통해 공유


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

설명

이 클래스는 일반적으로 serialization 시나리오에서 사용됩니다.

XamlXmlWriter를 사용하는 방법

XamlWriter API에는 다양한 형식의 XAML 노드를 작성하는 여러 메서드가 있습니다. 전체적으로 설명서에서 XamlWriterWrite 메서드라고 합니다. XamlXmlWriter 여러 내부 상태 클래스를 사용하여 Write 구현 중 하나가 호출되는 경우 수행할 작업을 결정합니다. Write 호출은 상태를 사용하여 요청된 요소, 특성 또는 값을 쓸 수 있는지 또는 예외가 throw되는지 여부를 결정합니다. 예를 들어 WriteEndObject 호출하고 XamlXmlWriter 현재 노드 위치의 상태가 값 또는 멤버 내에 있는 경우 예외가 throw됩니다. 일반적으로 XamlXmlWriter API의 호출자는 XAML 판독기 및 XAML 노드 스트림에서 들어오는 현재 XAML 노드의 형식을 알고 있어야 합니다. 이 지식을 바탕으로 호출자는 현재 노드 형식과 관련이 없는 Write API를 호출하지 않아야 합니다.

XAML 네임스페이스 및 XamlXmlWriter

XamlXmlWriter XAML 네임스페이스 쓰기 동작은 복잡하며 WriteNamespace대한 명시적 호출로 제한되지 않습니다. 대신 WriteStartObject같은 다른 Write 호출에서는 노드 구조의 특정 지점에서 네임스페이스 선언을 작성해야 할 수 있습니다. XAML 작성기는 자체 논리로 접두사를 생성하거나 INamespacePrefixLookup 서비스의 정보를 사용하여 기본 접두사를 결정합니다. 또한 명시적 WriteNamespace 호출이 지연되거나 XAML 네임스페이스 선언이 이미 적용 가능하고 다른 곳에서 선언된 경우 아무 것도 반환하지 않을 수 있습니다.

쓰기 메서드 예외

XamlXmlWriter Write 메서드에서 throw되는 예외는 일반적으로 InvalidOperationException 또는 XamlXmlWriterException.

InvalidOperationException 종종 XAML 판독기에서 잘못된 노드 구조를 XAML 노드 스트림에 전달했음을 나타냅니다. 이 경우 XAML 스키마 또는 XAML 스키마 컨텍스트의 유효성 검사와 관련이 없는 이유로 노드 구조가 유효하지 않습니다. 대신 노드 스트림이 기본 형식으로 잘못되었습니다. 예를 들어 잘못된 XAML 판독기 구현에서 두 개의 연속 StartObject 노드가 포함된 XAML 노드 스트림을 생성한 경우 두 번째 WriteStartObject 호출하려고 하면 InvalidOperationExceptionthrow됩니다. 모든 XAML 작성기는 이러한 작업이 잘못된 것으로 간주합니다. InvalidOperationException 또 다른 예는 현재 노드 스트림 위치에 적용되는 XAML 스키마 컨텍스트를 통해 XAML 네임스페이스 정보를 사용할 수 없는 경우입니다.

XamlXmlWriterException 특정 XAML 작성기 구현에서 의도한 기능에 따라 예외를 throw하도록 선택하는 예외를 나타냅니다. XamlXmlWriterException XamlXmlWriter 자체 상태 또는 설정을 위반하는 특정 사례를 나타낼 수 있습니다. 예를 들어 XamlXmlWriterExceptionXamlXmlWriter 및 해당 serialization 형식이 지원하지 않는 위치에 XAML 네임스페이스 정보를 쓰거나 인스턴스의 XamlXmlWriterSettings 금지될 때 중복 멤버를 작성하려는 시도로 인해 발생할 수 있습니다.

생성자

XamlXmlWriter(Stream, XamlSchemaContext)

스트림에서 XamlXmlWriter 클래스의 새 인스턴스를 초기화합니다.

XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

기록기 설정 개체를 사용하여 스트림에서 XamlXmlWriter 클래스의 새 인스턴스를 초기화합니다.

XamlXmlWriter(TextWriter, XamlSchemaContext)

TextWriter 기준으로 XamlXmlWriter 클래스의 새 인스턴스를 초기화합니다.

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

설정 개체를 사용하여 TextWriter 기준으로 XamlXmlWriter 클래스의 새 인스턴스를 초기화합니다.

XamlXmlWriter(XmlWriter, XamlSchemaContext)

XmlWriter 기준으로 XamlXmlWriter 클래스의 새 인스턴스를 초기화합니다.

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

설정 개체를 사용하여 XmlWriter 기준으로 XamlXmlWriter 클래스의 새 인스턴스를 초기화합니다.

속성

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()

XAML 최종 멤버 노드를 기본 XmlWriter 또는 TextWriter씁니다. XAML 노드 스트림의 현재 위치가 멤버 내에 없거나 내부 기록기 상태가 최종 멤버에 대한 쓰기를 지원하지 않는 경우 예외를 throw합니다.

WriteEndObject()

XAML 끝 개체 노드를 기본 XmlWriter 또는 TextWriter씁니다. 처리 중인 XAML 노드 스트림의 현재 위치가 끝 개체 작성과 호환되지 않는 경우 예외를 throw합니다.

WriteGetObject()

지정된 개체가 입력 XAML 노드 집합의 개체 값으로 지정되는 대신 작성 중인 속성의 기본값 또는 암시적 값인 경우 개체를 씁니다.

WriteNamespace(NamespaceDeclaration)

기본 XmlWriter 또는 TextWriter네임스페이스 정보를 씁니다. 특정 상태에 대한 예외를 throw할 수 있습니다. 그러나 처리 중인 기록기 및 XAML 노드 스트림이 XAML 네임스페이스 선언을 삽입할 수 있는 위치에 도달할 때까지 네임스페이스 정보 작성을 연기할 수 있습니다.

WriteNode(XamlReader)

XAML 판독기(NodeType)의 노드 형식에 따라 전환을 수행하고 기록기 구현에 대한 관련 Write 메서드를 호출합니다.

(다음에서 상속됨 XamlWriter)
WriteStartMember(XamlMember)

XAML 시작 멤버 노드를 기본 XmlWriter 또는 TextWriter씁니다. XAML 노드 스트림의 현재 위치가 다른 멤버 내에 있거나 시작 멤버를 쓸 수 있는 범위 또는 기록기 상태가 아닌 경우 예외를 throw합니다.

WriteStartObject(XamlType)

XAML 시작 개체 노드를 기본 XmlWriter 또는 TextWriter씁니다. XAML 노드 스트림의 현재 위치가 시작 개체를 쓸 수 있는 범위에 없거나 기록기가 시작 개체를 쓸 수 있는 상태가 아닌 경우 예외를 throw합니다.

WriteValue(Object)

XAML 값 노드를 기본 XmlWriter 또는 TextWriter씁니다. XAML 노드 스트림의 현재 위치가 값 작성에 유효하지 않거나 작성기가 값을 쓸 수 없는 상태에 있으면 예외를 throw합니다.

명시적 인터페이스 구현

IDisposable.Dispose()

Dispose()참조하세요.

(다음에서 상속됨 XamlWriter)

적용 대상

추가 정보