假设我有包含 classB 的 classA,并且两者都是 [Serializable]。
我假设,在反序列化 classB 将首先反序列化。
然而,情况并非如此,因为我可以通过在每个 [OnDeserialized] 方法被命中时记录来确认。
现在我有以下问题:
在 classA 的反序列化完成后,它应该使用 classB 中的值进行自我设置。不幸的是,此时 classB 尚未反序列化,因此 classA 设置错误。
如果我可以强制 BinaryFormatter 在 classA 之前反序列化 classB,或者从下到上而不是从上到下解析对象图,我的问题就会得到解决。
另一个明显的解决方案是让 classB 在反序列化时触发一个事件,然后让 classA 自行设置,但我想远离这种不优雅的解决方法。
因此,如果有人知道更好的解决方案,我将不胜感激。