我有一些数据要在内存中序列化为XML字符串,保留空格。我试过这个:
[Serializable]
public class MyClass
{
public string NormalField {get; set;}
public string WhitespaceField {get; set;}
}
string GetXml(List<MyClass> data)
{
string xml = "";
XmlSerializer ser = new XmlSerializer(typeof(List<MyClass>));
using (MemoryStream xmlStream = new MemoryStream())
{
ser.Serialize(xmlStream, data);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.PreserveWhitespace = true;
xmlStream.Position = 0;
xmlDoc.Load(xmlStream);
xml = xmlDoc.OuterXml;
}
return xml;
}
void Execute()
{
List<MyClass> list = new List<MyClass>();
list.Add(new MyClass { NormalField = "a", WhitespaceField = " 456" });
string xml = GetXml(list);
}
但是不保留空格。特别是我的数据中的一个字段是一个带有前导空格的字符串,我想要保留它,但它并没有发生。 我做错了什么?