我为我们的客户创建了一个asp.net Web服务,它返回包含复杂类型的多个List
对象。客户端一直在接收数据。
他注意到并非所有标签都在那里。例如,如果我在列表中返回3个对象,则返回时,对象A B和C.以及C为null。它将显示:
<A>data</A>
<B>data</B>
如果我希望它显示以下内容:
<A>data</A>
<B>data</B>
<C/>
或者至少:
<A>data</A>
<B>data</B>
<C></C>
基本上,我希望XML的结构保持不变,无论可用的数据是什么,哪些数据为空。
有什么建议吗?
非常感谢!!
答案 0 :(得分:2)
NULL值或默认值可以通过省略存取器元素来表示。 NULL值也可以由包含属性xsi:null且值为“1”的访问器元素指示,或者可能由其他依赖于应用程序的属性和值指示。
不幸的是,MS为这种情况选择了第一个选项。
另一方面,你不能像这样制作NULL值:
<C></C>
因为空字符串和null之间的区别如何?
此选项
<C/>
看起来很有希望。我猜你的服务使用XMLSerializer来序列化你的数据。检查this post。也许您可以为对象实现IXMLSerializable
并为您的数据提供自定义xml。