序列化代码如下:
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看不到任何内容,但是文件大小还是有的。
求大神指教!!!
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看不到任何内容,但是文件大小还是有的。
求大神指教!!!
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;
}