XmlSerializer 测试 2

集合

运行结果为 True 。实际上,如果把 MyList 换成只读属性,只要其值非 null / Nothing,则程序仍可以正常运行。

也就是说,反序列化过程复用了已有的集合实例。

发生变化的类

运行结果为

说明反序列化过程中可以自动跳过缺失 XML 元素的属性/字段。

字典

XML 序列化不支持所有实现 IDictionary 接口的类。

可以替代的方法:自定义XML序列化Dictionary<int, string=””>

循环引用

运行结果如下

XmlSerializer对循环引用处理的方法为按值展开。要解决这一问题,可以手动实现IXmlSerializable,或者使用DataContractSerializer。具体的处理方法可以参考:
WCF 第六章 序列化与编码 保留引用和循环引用

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据