Ich habe eine Klasse, die eine Referenz auf eine Hashtabelle verwaltet und diese Hashtable serialisiert/deserialisiert. Nach dem Aufruf von SerializationInfo.GetValue wird die Hashtable nicht vollständig deserialisiert, da die Deserialisierung während des IDeserialization-Calback erfolgt.Hashtable.OnDeserialization
Hashtable hashtable = (Hashtable) info.GetValue("hash", typeof(Hashtable));
ich implementiert auch den IDeserialization Rückruf in der übergeordneten Klasse, aber auch dort die Hashtable noch nicht vollständig deserialisiert werden. Ich habe es erwartet, wenn die Deserialisierung von innen heraus geschieht.
Meine Frage ist, ist es sicher, Hashtable.OnDeserialization von der OnDeserialization-Methode meiner Elternklasse explizit aufzurufen, damit ich es an diesem Punkt aufzählen kann?
Dies ist ein interessantes Problem. Sie können immer einige Haltepunkte setzen und sehen, was passiert. –
Ich habe ein ähnliches Problem in der generischen Dictionary-Sammlung mit Microsoft Connect angesprochen. Sie haben bestätigt, dass es sich um einen Fehler handelt. Ich habe es nie direkt OnDeserialization versucht, aber ich vermute, dass es nicht in allen Situationen funktioniert. –