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

请问,反序列化
if (File.Exists(file))
{  
  MessageBox.Show("成功"); //能弹出
  FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);  
  BinaryFormatter b = new BinaryFormatter();  
  Config c = (Config)b.Deserialize(fileStream);
  MessageBox.Show("成功"); //不能弹出
  name = c.name;
  adress = c.adress;
  fileStream.Close();
}


上面是部分代码,反序列化的时候,为什么下面那句MessageBox不能弹出呢,而上面那句却能弹出?

------解决方案--------------------
可能是出错了吧

if (File.Exists(file))
{
try{
MessageBox.Show("成功"); //能弹出
FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryFormatter b = new BinaryFormatter();
Config c = (Config)b.Deserialize(fileStream);
MessageBox.Show("成功"); //不能弹出
name = c.name;
adress = c.adress;
fileStream.Close();
}
catch (Expection ex) { MessageBox.Show(ex.Message); }
}
}

这样输出什么?
------解决方案--------------------
Expection ex => Exception ex
------解决方案--------------------
b.Deserialize(fileStream) 的结果是 Config类型吗?

try catch一下这句:
C# code

Config c = (Config)b.Deserialize(fileStream);

------解决方案--------------------
文件格式不对。

应该只能反序列化 序列化的东西。

有点拗口。