首页 > 解决方案 > 序列化文件出错:二进制流“0”不包含有效的 BinaryHeader

问题描述

我有一个非常奇怪的问题,完全让我感到困惑。任何帮助将不胜感激。

我有一个保存文件,我用以下代码写出:

        using (FileStream fs = File.Open(SavePath, FileMode.Create, FileAccess.Write))
        {
            BinaryFormatter bf = new BinaryFormatter();
            bf.Serialize(fs, SaveData);
        }

对于大多数用户来说,这很好用,而且对我来说总是很好用。但是对于不到 1% 的用户来说,这段代码正在写出一个只有零的文件。它具有完全相同的文件大小,文件只是充满了零,而不是类中的实际数据。该类存在于内存中,不涉及数据库或互联网连接。

对于这些用户来说,这个问题总是会发生,但其他任何用户都不会。每个人都在运行完全相同的代码。有没有人有任何想法可能导致这种情况发生?这些用户的计算机一定有一些特定的东西导致它一直失败。

文件保存位置在:C:\Users[USERNAME]\AppData\LocalLow\ProgramFolder

标签: c#serializationbinaryformatter

解决方案


推荐阅读