XamlXmlWriter 类

定义

使用 TextWriterXmlWriter 支持类将 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

注解

此类通常用于序列化方案。

如何使用 XamlXmlWriter

API XamlWriter 有多种方法可以编写不同类型的 XAML 节点。 它们统称为文档中 Write 的方法 XamlWriterXamlXmlWriter 使用多个内部状态类来确定调用其中 Write 一个实现时要执行的操作。 Write调用使用状态来确定请求的元素、属性或值是否可以写入,还是引发异常。 例如,如果调用 WriteEndObject 当前 XamlXmlWriter 节点位置的状态位于值或成员内,则会引发异常。 通常,API 的 XamlXmlWriter 调用方应注意来自 XAML 读取器和 XAML 节点流的当前 XAML 节点的类型。 根据此知识,调用方应避免调用 Write 与当前节点类型无关的 API。

XAML 命名空间和 XamlXmlWriter

XAML 命名空间写入行为 XamlXmlWriter 很复杂,不限于显式调用 WriteNamespace。 相反,其他 Write 调用(例如 WriteStartObject)可能需要在节点结构中的特定点写入命名空间声明。 XAML 编写器通过自己的逻辑生成前缀,或使用服务中的信息 INamespacePrefixLookup 来确定首选前缀。 此外,如果 XAML 命名空间声明已适用且在其他位置声明,则显式 WriteNamespace 调用可能会延迟或返回任何内容。

写入方法异常

方法引发XamlXmlWriterWrite的异常通常是InvalidOperationExceptionXamlXmlWriterException

通常 InvalidOperationException 指示 XAML 读取器将无效节点结构传递到 XAML 节点流中。 在这种情况下,节点结构无效,原因与验证 XAML 架构或 XAML 架构上下文无关。 相反,节点流的基本形式无效。 例如,如果错误 XAML 读取器实现生成了包含两个连续 StartObject 节点的 XAML 节点流,则尝试调用第二 WriteStartObject 个节点将引发一个 InvalidOperationException。 所有 XAML 编写器都认为此类操作无效。 另一个 InvalidOperationException 示例是,当 XAML 命名空间信息通过应用于当前节点流位置的 XAML 架构上下文不可用时。

指示 XamlXmlWriterException 此特定 XAML 编写器实现选择基于其预期功能引发异常的异常。 A XamlXmlWriterException 可以指示违反其自己的状态或设置的特定情况 XamlXmlWriter 。 例如, XamlXmlWriterException 尝试将 XAML 命名空间信息写入到不支持其序列化格式的位置 XamlXmlWriter ,或者在实例 XamlXmlWriterSettings 禁止时写入重复成员。

构造函数

XamlXmlWriter(Stream, XamlSchemaContext)

从流中初始化 XamlXmlWriter 类的新实例。

XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

使用编写器设置对象从流中初始化 XamlXmlWriter 类的新实例。

XamlXmlWriter(TextWriter, XamlSchemaContext)

XamlXmlWriter 基础初始化 TextWriter 类的新实例。

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

使用设置对象从 XamlXmlWriter 基础初始化 TextWriter 类的新实例。

XamlXmlWriter(XmlWriter, XamlSchemaContext)

XamlXmlWriter 基础初始化 XmlWriter 类的新实例。

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

使用设置对象从 XamlXmlWriter 基础初始化 XmlWriter 类的新实例。

属性

IsDisposed

获取的值指示是否已调用了 Dispose(Boolean)

(继承自 XamlWriter)
SchemaContext

获取此 XamlXmlWriter 用于处理的 XAML 架构上下文。

Settings

获取此 XamlXmlWriter 用于 XAML 处理的编写器设置。

方法

Close()

关闭 XAML 编写器对象。

(继承自 XamlWriter)
Dispose(Boolean)

释放 XamlXmlWriter 占用的非托管资源,也可以选择释放托管资源。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Flush()

调用基础 XmlWriterTextWriterFlush 方法,该方法将写出当前位于缓冲区中的任何内容,然后关闭编写器。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)
WriteEndMember()

将 XAML 结束成员节点写入到基础 XmlWriterTextWriter。 如果 XAML 节点流的当前位置不在成员内,或者如果内部编写器状态不支持写入结束成员,则引发异常。

WriteEndObject()

将 XAML 结束对象节点写入到基础 XmlWriterTextWriter。 如果所处理的 XAML 节点流的当前位置与写入结束对象不兼容,则引发异常。

WriteGetObject()

针对指定对象是所编写属性的默认值或隐式值的情况写出对象,而不是指定为输入 XAML 节点集中的对象值。

WriteNamespace(NamespaceDeclaration)

将命名空间信息写入到基础 XmlWriterTextWriter。 对于某些状态可能会引发异常;但在编写器和所处理的 XAML 节点流到达可放置 XAML 命名空间声明的位置之前,可能会改为延迟写入命名空间信息。

WriteNode(XamlReader)

基于 XAML 读取器中的节点类型 (NodeType) 执行切换,并为编写器实现调用相关的 Write 方法。

(继承自 XamlWriter)
WriteStartMember(XamlMember)

将 XAML 起始成员节点写入到基础 XmlWriterTextWriter。 如果 XAML 节点流的当前位置在另一个成员内,或者未处于可写入起始成员的范围或编写器状态中,则引发异常。

WriteStartObject(XamlType)

将 XAML 起始对象节点写入到基础 XmlWriterTextWriter。 如果 XAML 节点流的当前位置不在可写入起始对象的范围内,或者编写器未处于可写入起始对象的状态,则引发异常。

WriteValue(Object)

将 XAML 值节点写入到基础 XmlWriterTextWriter。 如果 XAML 节点流的当前位置对于写入值操作无效,或者编写器处于无法写入值的状态,则引发异常。

显式接口实现

IDisposable.Dispose()

请参阅 Dispose()

(继承自 XamlWriter)

适用于

另请参阅