【发布时间】:2011-04-28 10:26:29
【问题描述】:
我在 c# 中将一个对象序列化为 xml,我想序列化
public String Marker { get; set; }
进入
<Marker></Marker>
当字符串 Marker 没有值时。
现在我明白了
<Marker />
对于Marker == string.Empty 和null 没有标记节点。
我怎样才能得到这个?
【问题讨论】:
-
我认为您应该详细说明为什么要这样做。从语义上讲,这两种形式没有区别,所以如果你正在编写一个它们不可互换的系统,它会让任何将来看到它的人(包括你自己)感到困惑。
-
为什么要关心元素是短格式还是扩展格式?它不会改变意思......
-
只是您更喜欢
<Marker></Marker>表示还是有技术原因?它几乎没有任何区别(实际上,我想到的只有 HTML<script>标签 - 这是由于浏览器的缺陷)。 -
我知道这并没有改变意思,但服务器(旧电话中心)端的解析器只排除扩展表单。
-
您是只编写 XML 数据还是还需要消费/读取 XML?如果您只需要阅读,最好使用
XmlWriter类。
标签: c# .net xml xml-serialization xmlserializer