をアップグレードし、私はにBinaryFormatterオブジェクトグラフは、私のオブジェクトグラフで
[Serializable]
public class Dog
{
string _name;
}
のようなものを持っていると私は犬に犬と参照のリストのすべての種類を持っています。
犬はソフトウェア作成の初めに動物だったので、基本クラスは必要ありませんでした。さて、その必要性が浮上していると、今私は
[Serializable]
public class Dog : Animal
{
public void Bark() { }
}
[Serializable]
public class Cat : Animal
{
public void DoTheCatStuff() { }
}
[Serializable]
public class Animal
{
string _name;
}
BUTがしたい:私は古いアーカイブをデシリアライズするとき、私はすべての犬を持っていないし。彼らはアーカイブからまったくデシリアライズしませんでした。
私は何をしたいのですか?新しいクラス階層が必要になり、古いDogから新しいTheDogに手動でオブジェクトをコピーする場合は、可能であればそれを避けたいです。
EDIT:一部の.NETガー、なぜ私は犬がいませんか?
上記のコードでBinaryFormatter(シリアライズ、クラス定義の変更、デシリアライズ)を使って簡単なテストを実行しましたが、何の問題もありませんでした。上記のコードが問題であると確信していますか? –
リストをオブジェクトグラフに追加してみてください... –
@ダニエル、リストで繰り返しましたが、それでもまだ再現できませんでした。 –