.Net中提供了序列化和反序列化功能,XmlSerializer,这是一个很强大的功能,可以通过下图概括显示。
其中有一点,默认情况下,将对象序列化为XML文件时,是不带缩进换行的。
我们需要设置XmlWriterSettings,它可以设置是否缩进换行。
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true; //是否缩进元素
settings.OmitXmlDeclaration = true; //是否编写XML声明
using (MemoryStream ms = new MemoryStream())
{
using (XmlWriter writer = XmlWriter.Create(ms, settings))
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
XmlSerializer formatter = new XmlSerializer(obj.GetType());
formatter.Serialize(writer, obj, ns);
}
var xml = encoding.GetString(ms.ToArray());
return xml;
}