【发布时间】:2017-12-18 16:33:15
【问题描述】:
我目前正在与外部公司进行集成,并且交互是使用序列化为 XML 字符串的对象完成的。我给出的示例和来自外部服务的响应包括 XML 标记,这些标记本身带有属性。
即:
<?xml version="1.0" encoding="UTF-8"?>
<Response Version="3">
<Status StatusCode="OK"></Status>
</Response>
最初我期望“OK”是“Status”标签之间的值,以便将其反序列化为结果对象上的字符串值,但“Status”字段最终为空字符串,我m 假设是因为标签在技术上是空的。
我目前正在尝试使用DataContractSerializer,因为考虑到其他一些单独的要求,它是最合适的,但我不确定如何处理像“状态”示例这样的标签。
DataContractSerializer 是否能够反序列化当前形式的“状态”标签?如果不是,应该使用哪种类型的序列化程序来适应这种情况?
此外,任何有关此 XML 结构的搜索词的资源或帮助将不胜感激。
【问题讨论】:
-
那些是属性,不是元素
-
@djv 啊,这解释了谷歌搜索缺乏进度。感谢您澄清这一点。不幸的是,看起来 DataContractSerializer 不支持属性。所以......回到绘图板。
-
DataContractSerializer 确实支持
IXmlSerializable,但请参阅here 示例,因此对于非常简单 对象(即只是一个属性),这将是一个选项。但是对于带有子元素的更复杂的对象,实现IXmlSerializable是残酷的。
标签: .net xml vb.net serialization datacontractserializer