【发布时间】:2010-12-10 20:37:40
【问题描述】:
假设我有包含 classB 的 classA 并且两者都是 [Serializable]。
我假设,在反序列化时 classB 将首先被反序列化。
但情况并非如此,我可以通过记录每个 [OnDeserialized] 方法被命中的时间来确认。
现在我有以下问题:
classA 的反序列化完成后,它应该使用来自 classB 的值来设置自己。不幸的是,此时 classB 尚未反序列化,因此 classA 设置错误。
如果我可以强制 BinaryFormatter 在 classA 之前反序列化 classB,或者从下到上而不是从上到下解析对象图,我的问题就会得到解决。
另一个明显的解决方案是让 classB 在反序列化时触发一个事件,然后让 classA 自行设置,但我想远离这种不优雅的解决方法。
如果有人知道更好的解决方案,我将不胜感激。
【问题讨论】:
-
根据问题标题,C# -> 重新标记
标签: c# .net serialization binaryformatter