代码如下: public static string ToXml(object o)
{
var returnval = string.Empty;
XmlSerializer xs = new XmlSerializer(typeof(PGFF));
using (MemoryStream ms = new MemoryStream())
{
xs.Serialize(ms, o);
returnval = System.Text.Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
}
return returnval;
}
返回的xml<?xml version="1.0"?>
<PGFF version="0.0.1">
<Guid>00000000-0000-0000-0000-000000000000</Guid>
<Screens>
......
这里第一行 <?xml 里没有 Encoding属性,如何在序列化时加入?
{
var returnval = string.Empty;
XmlSerializer xs = new XmlSerializer(typeof(PGFF));
using (MemoryStream ms = new MemoryStream())
{
xs.Serialize(ms, o);
returnval = System.Text.Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
}
return returnval;
}
返回的xml<?xml version="1.0"?>
<PGFF version="0.0.1">
<Guid>00000000-0000-0000-0000-000000000000</Guid>
<Screens>
......
这里第一行 <?xml 里没有 Encoding属性,如何在序列化时加入?
var result = string.Empty;
XmlSerializer xs = new XmlSerializer(obj.GetType());
XmlWriterSettings xws = new XmlWriterSettings();
Encoding utf8 = Encoding.UTF8;
xws.Encoding = utf8;
using (MemoryStream ms = new MemoryStream())
{
using (XmlWriter xw = XmlWriter.Create(ms, xws))
{
xs.Serialize(xw, obj);
result = utf8.GetString(ms.ToArray());
}
}
return result;
public new string ToXml()
{
var result = string.Empty;
XmlSerializer xs = new XmlSerializer(typeof(PGFF));
using (MemoryStream ms = new MemoryStream())
{
using (TextWriter tw = new StreamWriter(ms, new UTF8Encoding()))
{
xs.Serialize(tw, this);
result = Encoding.UTF8.GetString(ms.ToArray());
}
}
return result;
}