序列化事件

时间:2009-05-15 16:55:08

标签: c# serialization events

我有A级,它暴露了一个事件。订阅该活动的B类对象。 这两个实例实际上也是对彼此的定期引用。 我想序列化A,并通过线路传输两个对象,在另一端重建。这样可以正常工作,但不保留事件订阅。

我认为我必须实现自己的序列化构造函数,以便在我的对象被反序列化时“收到通知”,因此它可以重新订阅事件。

然而,看起来这意味着我必须通过实现ISerializable来完全实现自动化。我现在依赖于BinaryFormatter和[Serializable]属性,实际上非常喜欢它。

有没有人知道让我获得反序列化通知的方法,同时仍然可以使用内置的序列化系统来自动序列化&为我反序列化我有点复杂的对象图?

谢谢卢卡斯

1 个答案:

答案 0 :(得分:8)

标准(非XML)序列化机制使用特殊属性来标记在(反)序列化期间用作回调的方法。 OnDeserializedAttribute正是您要找的。类似的解决方案是实现IDeserializationCallback接口。