在完成分析之前检测到结束流

Before completing the analysis was detected ending stream

又是我,我有另一个问题。在某处,我发现了以下代码:

private T DeepDeserialize<T>(string fileName)
    {
        T returnValue;
        using (FileStream str = new FileStream(fileName, FileMode.Open))
        {
            BinaryFormatter binaryFormatter = new BinaryFormatter();
            returnValue = (T)binaryFormatter.Deserialize(str);
        }
        return returnValue;
    }

今天和现在修改了一些类,老是报错,可以这样翻译:Before completing the analysis was detected ending stream(不知道翻译对不对,错误提示是我的语言,不是英语)

我曾尝试在 using 的这两行之间插入 str.Position = 0;,我在此处的某处找到了它,但没有帮助。

有人可以帮我让它重新工作吗?我不知道该怎么做...

您已经更改了文件的二进制布局,但很可能是在尝试反序列化旧文件。这是行不通的。您必须先序列化新版本。

P.S。如果您在早期阶段考虑版本控制和自定义格式化程序,您也许可以使用新数据 类 反序列化旧数据,具体取决于您的更改