日期:2014-05-17  浏览次数:20777 次

关于序列化的简单问题!!
小弟想把一些xml序列化成字符串
 

            MemoryStream ms = new MemoryStream();
            XmlTextWriter xmlWriter = new XmlTextWriter(ms, Encoding.UTF8);
            XmlSerializer formatter = new XmlSerializer(typeof(OBj));
            formatter.Serialize(xmlWriter, parameters); // OBj parameters; 可xml时 出错
            xmlWriter.Close();
            string info = Encoding.UTF8.GetString(ms.ToArray()); 

滴二个问题!!

            XmlSerializer xmlSrlzr = new XmlSerializer(typeof(Domain.SoulBaseInfo));
            MemoryStream ms = new MemoryStream();
            XmlTextWriter xmlWriter = new XmlTextWriter(ms, Encoding.UTF8);
            XmlSerializer formatter = new XmlSerializer(typeof(Domain.SoulBaseInfo));
            formatter.Serialize(xmlWriter, baseInfo);
            xmlWriter.Close();
            string info = Encoding.UTF8.GetString(ms.ToArray());
            info = info.Replace("<?xml version=\"1.0\" encoding=\"utf-8\"?>", "\r\a"); //删除第一行

序列化后为

  <?xml version="1.0" encoding="utf-8" ?>     //这行不要 但是要是像上面代码中删除 就会提示 xml顶层无效。。原来用另一个方法的时候也没有这行 也没提示有错误 请问这行怎么删?
- <SoulBaseInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.openxmlformats.org/2011/BaseInfo">
  <ID>7b24ed37-86e6-4ee1-b0ef-39d9c09738e9</ID> 
  <InstanceID>7b24ed37-86e6-4ee1-b0ef-39d9c09738e9</InstanceID> 
  <Name>7b24ed37-86e6-4ee1-b0ef-39d9c09738e9</Name> 
  <Version>1.0.0.0</Version> 
  <Path /> 
  <Description />