【问题标题】:Serializing events序列化事件
【发布时间】:2009-05-15 16:55:08
【问题描述】:

我有 A 类,它公开了一个事件。订阅了该事件的 B 类对象。 这两个实例实际上也经常互相引用。 我想序列化 A,并通过网络传输两个对象,以便在另一端重建。这工作正常,除了不保留事件订阅。

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

但是,看起来这意味着我必须自己通过实现 ISerializable 来完全实现序列化。我现在依赖 BinaryFormatter 和 [Serializable] 属性,实际上非常喜欢。

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

谢谢,卢卡斯

【问题讨论】:

    标签: c# serialization events


    【解决方案1】:

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

    【讨论】:

    • 很好的答案。我盯着我的代码看了 2 个小时,试图弄清楚为什么我的事件总是为空,即使订阅代码运行良好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多