【发布时间】:2015-10-13 10:45:13
【问题描述】:
我将 XmlSerializer 用于 Object -> Xml 序列化。当我的对象中的字符串属性为空或仅包含空格时,序列化程序只会返回<SomeProperty/>。
如何在序列化过程中保留空格?
还有后续,如果我放多个空格SomeProperty = " ";,我也想将它们序列化,所以<SomeProperty> </SomeProperty>。
var xmlSerializer = new XmlSerializer(typeof(T));
var xmlWriterSetting = new XmlWriterSettings()
{
Encoding = System.Text.Encoding.Default,
Indent = false,
OmitXmlDeclaration = true
};
using (var stringWriter = new StringWriter())
using (var xmlWriter = XmlWriter.Create(stringWriter, xmlWriterSetting))
{
xmlSerializer.Serialize(xmlWriter, InputObject);
return stringWriter.ToString();
}
【问题讨论】:
-
无法重现。当我使用您的代码(使用 VS 2015 和 .NET 4.5.2)时,我得到了空格。您也可以发布课程声明吗?那里可能有区别..
-
@Volkan Paksoy 我发现了问题,代码确实可以正确序列化(正确保留空格)但是在前端我使用带有默认 XSLT 的
控件( Microsoft 使用)来显示数据 - 此控件无法正确显示。我应该在一开始就检查调试。感谢您让我进行调试和检查!
标签: c# xmlserializer