代码如下:
/// <summary>
/// 把对象序列化为xml字符串
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj">object</param>
/// <param name="encoding">编码方式</param>
/// <param name="namespaces">是否有默认的命名空间串</param>
/// <returns></returns>
public static string SerializeObject<T>(T obj, Encoding encoding, bool namespaces = false)
{
if (obj != null)
{
if (encoding == null)
encoding = Encoding.UTF8;
using (MemoryStream ms = new MemoryStream())
{
using (XmlTextWriter textWriter = new XmlTextWriter(ms, encoding))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
if (namespaces)
serializer.Serialize(textWriter, obj);
else
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
serializer.Serialize(textWriter, obj, ns);
}
}
return encoding.GetString(ms.GetBuffer());
}
}
else
{
return String.Empty;
}
}