【问题标题】:VB.NET difficulties serializing classes with attached eventsVB.NET 难以序列化带有附加事件的类
【发布时间】:2010-01-27 21:14:15
【问题描述】:

很惊讶这个问题还没有在这里被问到,但是这里是:

VB.NET 中的序列化有点痛苦。如果您使用标准的 Serializable() 属性,并尝试序列化具有附加到处理程序的事件的类,它也会尝试序列化处理程序。

来自 C# 背景,我不习惯处理这个问题,我能找到的最佳解决方案是使用 CodeProject 的一个类。

但是我宁愿不改变这个想法的对象继承结构。

对在 VB.NET 中创建的类进行序列化的标准方法是什么?

我听说过删除所有处理程序,序列化,然后重新添加所有处理程序,但这不会导致事件触发而不被处理吗?

【问题讨论】:

    标签: vb.net events serialization


    【解决方案1】:

    在 C# 中,解决方案是将 NonSerializedAttribute 应用于事件的支持字段,在属性上使用 field: 前缀。不幸的是,VB 不支持field: 技巧,因此您需要明确事件的支持字段,并对其应用 NonSerializedAttribute。 Rocky Lhotka has sample code for this.

    不幸的是,它确实看起来相当冗长乏味,因为现在您必须为每个事件拼出添加、删除和引发方法。

    【讨论】:

      猜你喜欢
      • 2012-06-04
      • 2013-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-16
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      相关资源
      最近更新 更多