c# 序列化对象为xml 方法
2021-04-12 20:29
标签:settings 声明 表示 div indent ace creat static for 也可以做成扩展方法 c# 序列化对象为xml 方法 标签:settings 声明 表示 div indent ace creat static for 原文地址:https://www.cnblogs.com/axel10/p/8992161.html public static string XmlUtils(object obj, bool omitXmlDeclaration = true, bool indent = false,
bool useNameSpace = false)
{
var sb = new StringBuilder();
using (var xw = XmlWriter.Create(sb, new XmlWriterSettings()
{
OmitXmlDeclaration = omitXmlDeclaration, //是否省略xml声明
ConformanceLevel = ConformanceLevel.Auto,
Indent = indent //生成的xml是否缩进
}))
{
if (useNameSpace)
{
var xs = new XmlSerializer(obj.GetType());
xs.Serialize(xw, obj);
}
else
{
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty); //去除xml命名空间
var xs = new XmlSerializer(obj.GetType());
xs.Serialize(xw, obj, namespaces);
}
}
//...:nil=\"true\"表示该值为空
return sb.ToString();
}
public static string XmlUtils(this T obj, bool omitXmlDeclaration = true, bool indent = false,
bool useNameSpace = false)
{
var sb = new StringBuilder();
using (var xw = XmlWriter.Create(sb, new XmlWriterSettings()
{
OmitXmlDeclaration = omitXmlDeclaration, //是否省略xml声明
ConformanceLevel = ConformanceLevel.Auto,
Indent = indent //生成的xml是否缩进
}))
{
if (useNameSpace)
{
var xs = new XmlSerializer(obj.GetType());
xs.Serialize(xw, obj);
}
else
{
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty); //去除xml命名空间
var xs = new XmlSerializer(obj.GetType());
xs.Serialize(xw, obj, namespaces);
}
}
//...:nil=\"true\"表示该值为空
return sb.ToString();
}