XmlSerializer 测试

测试源代码如下,使用 VS2013 编写。

运行结果如下

可以看出,

  1. XmlArrayItem(Attribute)XmlElement 等相关特性中指定 IsNullable = true 可以使得当前为 null / Nothing 的元素在序列化时产生一个包含 xsi:nil="true" 特性的 XML 元素。
  2. 在特性中指定元素的命名空间时,应当指定命名空间的 URI,尽管可以稍后在 XmlSerializerNamespaces 中为这些 URI 指定对应的命名空间前缀。
  3. 需要序列化派生类时,总是 需要通过 XmlInclude 特性,或者通过 XmlSerializer 的构造函数显式声明序列化过程中可能用到的派生类。
  4.  数组的序列化:可以通过 XmlArrayItem 特性声明数组中可能包含的派生类类型。这些类型在序列化时会使用与之对应的元素名。如果存在未在 XmlArrayItem 中声明的派生类,而其基类在 XmlArrayItem 中声明过,则会使用基类对应的元素名,外加 xsi:type 特性声明实际派生类的类型。(关于这一点,可以参阅另一篇文章:MSDN中“(使用 XmlArrayItemAttribute 限定)序列化派生类”一节中的示例可能与实际有出入
  5. 我该滚去修改以前的代码了。

发表评论

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

*

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