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 作为 XAML 节点流完整对象写入评估的一部分,加号 WriteStartObject 调用数应等于调用数 WriteEndObject 。
对象图中隐式对象的概念 StartObject
位置是必需的,因为尽管对象值本身是隐式默认值,但该对象可能仍具有需要基于 XAML 节点流写入的成员。 这种情况的典型情况是在 XamlObjectWriter 写入集合属性的成员节点时,并且集合初始化是隐式的,用于创建拥有集合属性的对象。