by 好大一小白
2013.9.11 11:30
以XML序列化为例,一般使用API:
//
// 摘要:
// 使用指定的 System.IO.Stream 序列化指定的 System.Object 并将 XML 文档写入文件。
//
// 参数:
// stream:
// 用于写入 XML 文档的 System.IO.Stream。
//
// o:
// 要序列化的 System.Object。
//
// 异常:
// System.InvalidOperationException:
// 序列化期间发生错误。使用 System.Exception.InnerException 属性时可获得原始异常。
public void Serialize(Stream stream, object o);
这样生成的是有BOM头信息的。而且XML是有默认的命名空间和声明等。
可以自定义一个xml的setting,使用new UTF8Encoding(false); 去掉BOM信息。
使用代码:
XmlWriterSettings xws = new XmlWriterSettings();
xws.Encoding = new UTF8Encoding(false);
xws.OmitXmlDeclaration = true; //去掉xml的声明
XmlWriter xtw = XmlWriter.Create(ms, xws);
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");//去掉默认命名空间
xml.Serialize(xtw, writeableObj, ns);