我想序列化一些对象,其中一些成员变量的类型为string
并且值为null
。 我使用下面的代码:XmlTextWriter和空字符串
var writer = new XmlTextWriter(stream, Encoding.UTF8);
writer.Formatting = Formatting.Indented;
var s = new XmlSerializer(typeof(model.GetType()));
s.Serialize(writer, model);
与价值null
琴弦不会出现在XML文件(这显然是预期的行为),虽然我不希望出现这种情况。 如何通过覆盖XmlTextWriter
类来使null
字符串出现在Xml文件中?
编辑:我不能修改需要序列化的对象模型,所以Xml属性是没有选择。
感谢您的回答。我无法修改对象模型,因此我无法使用此解决方案。我编辑了我的问题来包含这个约束。 – thumbmunkeys
@ x0r:在你的对象集合上循环并用String.Empty替换null项不是解决方案,对吧? – Marco
这将是一个解决方案!尽管它不是一个对象集合,而是一个对象树。因此您需要使用反射来遍历树,遍历所有成员变量并设置这些“空”字符串。 – thumbmunkeys