0

我用这段代码序列化了一个带有一些属性的文件:

    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# 新手,所以我不知道该怎么做。

4

1 回答 1

3

无法加载文件或程序集“922ab9ba88eba49469a1eeab68bc0baa”

它抱怨的是程序集,而不是 Game.data 文件。委婉地说,程序集名称很奇怪。但为了让 BinaryFormatter 能够反序列化存储在 Game.data 中的对象,它必须能够加载包含 LevelData 类型的程序集。使用Fuslogvw.exe 工具对程序集解析问题进行故障排除,它可以准确地向您显示 CLR 正在寻找的程序集以及它查找的位置。

于 2011-04-27T01:23:53.117 回答