0

それはまた私であり、私には別の問題があります。どこかで、次のコードを見つけました。

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(正しい翻訳がわからない。エラー メッセージは英語ではなく私の言語で表示されます)

ここのどこかで見つけたstr.Position = 0;のこれらの 2 行の間に挿入しようとしましたが、役に立ちません。using

誰かがそれを再び機能させるのを手伝ってもらえますか? 私は何をすべきか分かりません...

4

1 に答える 1

1

ファイルのバイナリ レイアウトを変更しましたが、おそらく古いファイルをデシリアライズしようとしています。これはうまくいきません。最初に新しいバージョンをシリアル化する必要があります。

PS初期段階でバージョン管理とカスタムフォーマッターを検討する場合、変更がどれほど劇的であったかによって、古いデータを新しいクラスで逆シリアル化できる可能性があります

于 2016-12-02T21:17:25.327 に答える