序列化代码如下:
              Stream sm = new MemoryStream();
            XmlSerializer ser = new XmlSerializer(typeof(XmlDocument));
            ser.Serialize(sm, xmlDoc);
            byte[] bb = new byte[sm.Length];
            sm.Read(bb, 0, (int)sm.Length);
            sm.Close();
然后我将得到的bb以文件的形式上传到服务器上。
反序列化代码如下:
              Stream s = downLoad(name);
            XmlSerializer ser = new XmlSerializer(typeof(XmlDocument));
            doc =(XmlDocument)ser.Deserialize(s);
            s.Close();
s是从服务器响应的流。当我做反序列化时,提示:XML 文档(0, 0)中有错误
所以我查看了一下原来序列化后的文件,发现序列化后xml看不到任何内容,但是文件大小还是有的。
求大神指教!!!

解决方案 »

  1.   


    public static void SaveToXml(string filePath, object sourceObj, Type type, string xmlRootName)
            {
                if (!string.IsNullOrWhiteSpace(filePath) && sourceObj != null)
                {
                    type = type != null ? type : sourceObj.GetType();                using (StreamWriter writer = new StreamWriter(filePath))
                    {
                        System.Xml.Serialization.XmlSerializer xmlSerializer = string.IsNullOrWhiteSpace(xmlRootName) ?
                            new System.Xml.Serialization.XmlSerializer(type) :
                            new System.Xml.Serialization.XmlSerializer(type, new XmlRootAttribute(xmlRootName));
                        xmlSerializer.Serialize(writer, sourceObj);
                       
                    }
                }
            }        public static object LoadFromXml(string filePath, Type type)
            {
                object result = null;            if (File.Exists(filePath))
                {
                    using (StreamReader reader = new StreamReader(filePath))
                    {
                        System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(type);
                        result = xmlSerializer.Deserialize(reader);
                    }
                }            return result;
            }
      

  2.   

    本帖最后由 bdmh 于 2012-11-15 17:47:30 编辑