XamlObjectWriter 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
从源 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
- 继承
- 实现
注解
Write
实现模式的方法XamlObjectWriter,以便XamlObjectWriter使用该XamlWriter方法定义的WriteNode方法。 WriteNode 逻辑在方法之间 Write
切换,具体取决于哪个节点类型位于读取器中的当前位置。
范围
一 XamlObjectWriter 个具有范围的概念;也就是说,在 XamlObjectWriter 输出对象图中维护概念性引用点。 对于特定范围,某些操作可能有效或无效,或生成无操作结果。 例如,如果调用 WriteStartMember 写入指令以初始化已作为实例存在的对象,则默认实现将引发异常。
自定义 XamlObjectWriter 中跟踪范围的可能方法是将节点操作与堆栈或帧类对齐。 堆栈或帧可以跟踪在写入对象图时 XamlObjectWriter 进入或退出的每个对象模型深度级别的推送和弹出。
回调
为了支持中间和高级 XamlObjectWriter 方案,编写对象图的机制提供了在提交或即将提交某些操作时 XamlObjectWriter 发生的回调入口点。 某些回调在设置中启用,不特定于要写入的对象类型或成员;但是,回调信息通常在上下文中提供,或者位于通过回调发送的事件数据中。 下面是相关回调的列表:
当范围转到新对象并在BeginInit每个已创建对象的对象生存期阶段调用声明AfterBeginInitHandler的回调。
当范围转到新对象并在EndInit每个已创建对象的对象生存期阶段调用声明AfterEndInitHandler的回调。
在对象中启动范围时调用由声明 BeforePropertiesHandler 的回调,并在首次 WriteStartMember 调用该对象范围但尚未提交时发生。
在对象中启动范围时调用由声明 AfterPropertiesHandler 的回调,并在调用该对象范围但尚未提交时 WriteEndObject 发生。
调用时OnSetValue调用由声明的XamlSetValueHandler回调。
编写字典键
默认实现 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) 方法。 |
方法
显式接口实现
IDisposable.Dispose() |
请参阅 Dispose()。 (继承自 XamlWriter) |