XamlObjectWriter.WriteGetObject 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当指定对象是父属性的默认值或隐式值时,将概念 StartObject 写入对象图中。 隐式值来自从 XAML 架构上下文获取的信息以及支持类型信息,而不是在输入 XAML 节点集中指定为对象值。
public:
override void WriteGetObject();
public override void WriteGetObject();
override this.WriteGetObject : unit -> unit
Public Overrides Sub WriteGetObject ()
注解
在生成的对象图中可以看到写入与 WriteGetObject 写入 WriteStartObject 之间的差异。 WriteGetObject 不构造类型的实例,因为 WriteGetObject API 没有信息来通知对象图要构造的内容。 而是在初始化父属性时创建对象;因此,不需要 XamlObjectWriter 构造它。 相反, WriteStartObject 指定应构造该类型的实例并将其插入到对象图中。
如果将 XAML 节点流视为一系列帧,则会 WriteGetObject 平衡到 WriteEndObject 调用。 因此,加WriteGetObject号调用数WriteStartObject应等于调用数WriteEndObject,作为 XAML 节点流的完整对象写入评估的一部分。
对象图中隐式对象的概念 StartObject 位置是必需的,因为尽管对象值本身是隐式默认值,但该对象可能仍有需要基于 XAML 节点流写入的成员。 发生此情况的典型情况是 XamlObjectWriter ,为集合属性写入成员节点,并且集合初始化是隐式创建拥有集合属性的对象。