2016-12-02 16 views
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(私は右の翻訳を知りませんが、エラーメッセージは、私がどこかにここに見つけたこれ、usingに次の2行の間str.Position = 0;を挿入しようとした、ではない

)英語で自分の言葉であるが、それは解決しません。

誰かがもう一度働かせるように手伝ってもらえますか?私は何をすべきか考えていません...

+1

クラスを変更した場合、古いファイルから逆シリアル化できない場合、最初にそれらをシリアル化する必要があります –

+0

ああ、ありがとう!私は私のファイルをリメイクするのを忘れました:-)なんてばかしい間違いでしょ?再度、感謝します。この投稿の回答として再度投稿するように依頼できますか?回答としてマークすることはできますか? :-) – SoptikHa

+0

確かに、いくつかの制限があります、私は受け入れることができるまで数分待たなければなりません – SoptikHa

答えて

1

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

P.S.バージョン管理とカスタムフォーマッタを早期段階で検討する場合は、変更がどれほど激しいかによって、新しいクラスで古いデータを逆シリアル化することができます。

関連する問題