请问,反序列化
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);
------解决方案--------------------
文件格式不对。
应该只能反序列化 序列化的东西。
有点拗口。