用XmlSerializer序列化和反序列化时的问题

昵称就这么定了 2008-06-02 10:28:09
// <summary>
/// 将一个ArrayList序列化成xml字符串
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
private byte[] myXmlSerializer(ArrayList list)
{
byte[] array = null;
try
{

XmlSerializer ser = new XmlSerializer(typeof(Operate.Entity));
MemoryStream mem = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(mem, Encoding.Default);
foreach(object obj in list)
{
ser.Serialize(mem,obj);
}
array = new byte[mem.Length];
mem.Position = 0;
mem.Read(array, 0, (int)mem.Length);
mem.Close();
writer.Close();
}
catch(Exception ex)
{
txtState.Text = "序列化时出现错误:" + ex.ToString() + "\r\n" + txtState.Text;
return null;
}
return array;
}







/// <summary>
/// 将一个xml字符串反序列化成ArrayList
/// </summary>
/// <param name="s"></param>
/// <param name="t"></param>
/// <returns></returns>
private ArrayList myXmlDeserialize(byte[] bytes)
{
ArrayList list = null;
try
{
XmlSerializer mySerializer = new XmlSerializer(typeof(ServerOperate.Entity));

StreamReader mem = new StreamReader(new MemoryStream(bytes), System.Text.Encoding.Default);
//while (stream.Position != stream.Length)
//{
list.Add(mySerializer.Deserialize(mem));
//}
//list = (ArrayList)mySerializer.Deserialize(mem);
}catch(Exception ex)
{
txtState.Text = "反序列化时出现错误:" + ex.ToString() + "\r\n" + txtState.Text;
return null;
}
return list;
}

上面是我序列化和返序列化的方法,但反序列化的时候,提示:
反序列化时出现错误:System.InvalidOperationException: XML 文档(6, 12)中有错误。 ---> System.Xml.XmlException: 意外的 XML 声明。XML 声明必须是文档中的第一个节点并且在它之前不允许出现空白字符。 行 6,位置 12。
在 System.Xml.XmlTextReaderImpl.Throw(Exception e)
在 System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
在 System.Xml.XmlTextReaderImpl.ParsePI(BufferBuilder piInDtdStringBuilder)
在 System.Xml.XmlTextReaderImpl.ParseDocumentContent()
在 System.Xml.XmlTextReaderImpl.Read()
在 System.Xml.XmlTextReader.Read()
在 System.Xml.XmlReader.ReadEndElement()
在 System.Xml.Serialization.XmlSerializationReader.ReadEndElement()
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderEntity.Read2_Entity(Boolean isNullable, Boolean checkType)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderEntity.Read3_Entity()
--- 内部异常堆栈跟踪的结尾 ---
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)
在 System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)
在 ServerOperate.Server.myXmlDeserialize(Byte[] bytes) 位置 D:\workround\ServerOperate\ServerOperate\Server.cs:行号 366


如何解决?
...全文
532 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
问题已解决...谢谢啦
ztenv 2008-06-02
  • 打赏
  • 举报
回复
把类的声明也贴出来,

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧