读书人

请教反序列化

发布时间: 2012-10-28 09:54:44 作者: rapoo

请问,反序列化
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);
[解决办法]
文件格式不对。

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

有点拗口。

读书人网 >C#

热点推荐