Hashtableへの参照を維持し、そのHashtableをシリアライズ/デシリアライズするクラスがあります。SerializationInfo.GetValue の呼び出し後、IDeserialization のカルバック中に逆シリアル化が発生するため、Hashtable は完全には逆シリアル化されません。
Hashtable hashtable = (Hashtable) info.GetValue("hash", typeof(Hashtable));
親クラスに IDeserialization コールバックも実装しましたが、ハッシュテーブルもまだ完全に逆シリアル化されていません。逆シリアル化が裏返しに行われている場合は、そうなると予想していました。
私の質問は、親クラスの OnDeserialization メソッドから Hashtable.OnDeserialization を明示的に呼び出して、その時点で列挙できるようにしても安全ですか?
public virtual void OnDeserialization(object sender)
{
hashtable.OnDeserialization(sender);
}