BinaryFormattere создает исключение FileNotFoundException для существующего файла. Почему? - PullRequest
0 голосов
/ 27 апреля 2011

Я сериализовал файл с некоторыми атрибутами с этим кодом:

<code>    public void saveLevelInfo(LevelData levelInfo) {
        stream = File.Open("Game.data", FileMode.Create);
        BinaryFormatter bFmt = new BinaryFormatter();
        bFmt.Serialize(stream, levelInfo);
        stream.Close();
    }

Тогда, когда я пытаюсь использовать это:

<code>
    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 #, поэтому я не знаю, что делать.

1 Ответ

3 голосов
/ 27 апреля 2011

Не удалось загрузить файл или сборку '922ab9ba88eba49469a1eeab68bc0baa'

Жалуется на сборку, а не файл Game.data. Название сборки довольно странно, мягко говоря. Но чтобы BinaryFormatter мог десериализовать объект, который был сохранен в Game.data, он должен иметь возможность загружать сборку, которая содержит тип LevelData. Используйте средство Fuslogvw.exe для устранения проблем с разрешением сборки, оно показывает, какую именно сборку ищет CLR и где она выглядела.

...