classBを含むclassAがあり、両方とも[Serializable]であるとします。
デシリアライズでは、classBが最初にデシリアライズされると思いました。
ただし、これは当てはまりません。各[OnDeserialized]メソッドがヒットしたときにログに記録するだけで確認できたからです。
今、私は次の問題を抱えています:
classAの逆シリアル化が完了すると、classBの値を使用してそれ自体をセットアップすることになっています。残念ながら、この時点ではclassBはまだ逆シリアル化されていないため、classAの設定が間違っています。
BinaryFormatterにclassAの前にclassBを逆シリアル化するように強制するか、オブジェクトグラフを上から下ではなく下から上に解決できれば、私の問題は解決します。
もう1つの明らかな解決策は、クラスBが逆シリアル化されたときにイベントを発生させてから、classAをセットアップすることですが、このエレガントでない回避策は避けたいと思います。
ですから、誰かがより良い解決策を知っていれば幸いです。