我使用以下代码序列化了一些带有一些属性的文件:
public void saveLevelInfo(LevelData levelInfo) {
stream = File.Open("Game.data", FileMode.Create);
BinaryFormatter bFmt = new BinaryFormatter();
bFmt.Serialize(stream, levelInfo);
stream.Close();
}
然后当我尝试使用它时:
public void loadLevelInfo() {
stream = File.Open("Game.data", FileMode.Open);
BinaryFormatter bFmt = new BinaryFormatter();
LevelData level = (LevelData)bFmt.Deserialize(stream);
stream.Close();
}
我得到这个例外: ileNotFoundException:无法加载文件或程序集“922ab9ba88eba49469a1eeab68bc0baa”或其依赖项之一。系统找不到指定的文件。
文件存在,如果我擦除文件我得到这个例外: FileNotFoundException:找不到文件“C:\ Users \ Gilson \ Documents \ AntHill \ anthill \ Game.data”
关于如何解决的任何想法?我是C#的新手,所以我不知道该怎么做。
答案 0 :(得分:3)
无法加载文件或程序集'922ab9ba88eba49469a1eeab68bc0baa'
它抱怨程序集,而不是Game.data文件。温和地说,汇编名称相当奇怪。但是为了使BinaryFormatter能够反序列化存储在Game.data中的对象,它必须能够加载包含LevelData类型的程序集。使用Fuslogvw.exe tool解决装配分辨率问题,它会准确显示CLR正在寻找的装配以及它的外观。