XamlObjectWriter 类

定义

从源 XAML 节点流创建对象图。

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方法。 WriteNode 逻辑在方法之间 Write 切换,具体取决于哪个节点类型位于读取器中的当前位置。

范围

XamlObjectWriter 个具有范围的概念;也就是说,在 XamlObjectWriter 输出对象图中维护概念性引用点。 对于特定范围,某些操作可能有效或无效,或生成无操作结果。 例如,如果调用 WriteStartMember 写入指令以初始化已作为实例存在的对象,则默认实现将引发异常。

自定义 XamlObjectWriter 中跟踪范围的可能方法是将节点操作与堆栈或帧类对齐。 堆栈或帧可以跟踪在写入对象图时 XamlObjectWriter 进入或退出的每个对象模型深度级别的推送和弹出。

回调

为了支持中间和高级 XamlObjectWriter 方案,编写对象图的机制提供了在提交或即将提交某些操作时 XamlObjectWriter 发生的回调入口点。 某些回调在设置中启用,不特定于要写入的对象类型或成员;但是,回调信息通常在上下文中提供,或者位于通过回调发送的事件数据中。 下面是相关回调的列表:

编写字典键

默认实现 XamlObjectWriter 支持在将字典内容添加到对象图之前对约束 Dictionary<TKey,TValue> 的类型转换。 通过这种方式,泛型字典可以按对象在运行时进行键键,并且可以匹配相关的泛型 Add 和索引器行为。 但是,正如为基 XamlObjectWriter实现的,此功能仅适用于从基 Dictionary<TKey,TValue> 类创建对象图,而不适用于派生类 Dictionary<TKey,TValue>

检查已释放

XAML 编写器可能用于延迟操作,或者对临时释放的 XAML 编写器实例进行调用。 在这些情况下可能会引发ObjectDisposedException的各种 APIXamlObjectWriter

构造函数

XamlObjectWriter(XamlSchemaContext)

使用 XamlObjectWriter 所用的 XAML 架构上下文初始化 XamlReader 类的新实例。

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

使用 XamlObjectWriter 所用的上下文及其设置初始化 XamlReader 类的新实例。

属性

IsDisposed

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

(继承自 XamlWriter)
Result

获取写入的最后一个对象。 通常,仅在节点流位于结尾且对象关系图完整时才调用。

RootNameScope

获取 INameScope 服务,该服务为 XAML 对象编写器的绝对根节点维护 XAML 名称范围。

SchemaContext

获取活动 XAML 架构上下文。

ShouldProvideLineInfo

获取一个值,该值报告行信息服务是否应提供值并因此在相关时同时调用 SetLineInfo(Int32, Int32) 方法。

方法

Clear()

重置所有可能的框架并清除对象图。

Close()

关闭 XAML 编写器对象。

(继承自 XamlWriter)
Dispose(Boolean)

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

Equals(Object)

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

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
OnAfterBeginInit(Object)

为此 AfterBeginInitHandler 调用任何与 XamlObjectWriterSettings 关联的 XamlObjectWriter 方法。

OnAfterEndInit(Object)

为此 AfterEndInitHandler 调用任何与 XamlObjectWriterSettings 关联的 XamlObjectWriter 方法。

OnAfterProperties(Object)

为此 AfterPropertiesHandler 调用任何与 XamlObjectWriterSettings 关联的 XamlObjectWriter 引用的方法。

OnBeforeProperties(Object)

为此 BeforePropertiesHandler 调用任何与 XamlObjectWriterSettings 关联的 XamlObjectWriter 引用的方法。

OnSetValue(Object, XamlMember, Object)

为此编写器调用任何与 XamlSetValueHandler 关联的 XamlObjectWriterSettings 引用的方法(只要 XamlSetValueEventArgs 事件数据中的 handled 不为 true)。

SetLineInfo(Int32, Int32)

实现 SetLineInfo(Int32, Int32),并为异常提供行信息。

ToString()

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

(继承自 Object)
WriteEndMember()

关闭当前成员范围,并且可能在关闭时写入成员范围的值。 新范围将成为成员的父对象范围。

WriteEndObject()

关闭编写器中的当前对象范围。 新对象范围将成为的父成员范围。

WriteGetObject()

当指定对象是父属性的默认值或隐式值时,将概念 StartObject 写入对象关系图。 隐式值来自从 XAML 架构上下文中获取的信息以及后备类型信息,而不是指定为输入 XAML 节点集中的对象值。

WriteNamespace(NamespaceDeclaration)

定义一个命名空间声明,该声明适用于下一个对象范围或成员范围。

WriteNode(XamlReader)

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

(继承自 XamlWriter)
WriteStartMember(XamlMember)

将新成员节点写入当前对象范围,并且该范围将成为新的成员范围。

WriteStartObject(XamlType)

将对象节点写入当前范围,并将该范围设置为新对象范围。

WriteValue(Object)

将值写入当前成员范围。 如果当前范围位于集合、字典或数组对象内部,则应将该值添加到集合、字典或数组中。

显式接口实现

IDisposable.Dispose()

请参阅 Dispose()

(继承自 XamlWriter)

适用于

另请参阅