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

注解

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

如何使用 XamlXmlWriter

API XamlWriter 有多种方法可以编写不同类型的 XAML 节点。 它们统称为文档中 Write 的一种 XamlWriter方法。 XamlXmlWriter 使用多个内部状态类来确定调用其中 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, XamlXmlWriterSettings)

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

XamlXmlWriter(Stream, XamlSchemaContext)

从流初始化类的新实例 XamlXmlWriter

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

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

XamlXmlWriter(TextWriter, XamlSchemaContext)

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

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

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

XamlXmlWriter(XmlWriter, XamlSchemaContext)

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

属性

名称 说明
IsDisposed

获取是否已 Dispose(Boolean) 调用。

(继承自 XamlWriter)
SchemaContext

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

Settings

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

方法

名称 说明
Close()

关闭 XAML 编写器对象。

(继承自 XamlWriter)
Dispose(Boolean)

释放由 XamlXmlWriter 托管资源使用的非托管资源,并选择性地释放托管资源。

Equals(Object)

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

(继承自 Object)
Flush()

Flush调用基础XmlWriterTextWriter基础的方法,该方法写入当前在缓冲区中的任何内容,然后关闭编写器。

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 启动成员节点写入基础 XmlWriter 节点或 TextWriter. 如果 XAML 节点流的当前位置位于另一个成员中,或者它不在可以写入起始成员的范围或编写器状态,则引发异常。

WriteStartObject(XamlType)

将 XAML 启动对象节点写入基础 XmlWriterTextWriter。 如果 XAML 节点流的当前位置不在可以写入开始对象的作用域中,或者编写器不处于可以写入开始对象的状态,则引发异常。

WriteValue(Object)

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

显式接口实现

名称 说明
IDisposable.Dispose()

请参阅 Dispose()

(继承自 XamlWriter)

适用于

另请参阅