【发布时间】:2017-12-04 17:00:49
【问题描述】:
今天我从第 3 方后端获得了更新的 XML 内容,并且不得不更改我们基于 XmlSerializer 的解析代码以符合新字段。不幸的是,我发现引入了一组类似的标签,但行为很奇怪:
<old-root>
...
<contacts>
<John>Feel happy</John>
<Mary>Will be away for 2 hours, phone me</Mary>
<Bob>Do not disturb. I mean it!</Bob>
...and so on...
</contacts>
</root>
到目前为止,我们有一个基于 [XmlElement] 映射的“旧根”解析器类,但我还没有弄清楚如何通过 XML 注释管理类似名称-值对的集合(类似于 [XmlArray ]/[XmlArrayItem] 通常是这样)。我可以通过 [XmlText] 注释获得一个值,但是如何注释该任意标签? “星”模式对 ElementName 无效。
附:我在 .NET 框架的 UWP 子集上。
【问题讨论】:
-
节点
、 、 在设计时是否已知?还是它们是任意节点? -
@Juan,在设计时不知道确切的名称。这是您从后端收到的联系人列表。
-
那么你使用属性的策略已经不够用了。我认为您超出了基本的序列化范围,因此您必须实现自定义序列化器/反序列化器。