代码之家  ›  专栏  ›  技术社区  ›  Brett Allen

VB.NET序列化带有附加事件的类时遇到的困难

  •  0
  • Brett Allen  · 技术社区  · 16 年前

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

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

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

    1 回复  |  直到 16 年前
        1
  •  2
  •   itowlson    16 年前

    在C#中,解决方案是使用 field: 属性上的前缀。不幸的是,VB不支持 技巧,所以您需要显式地设置事件的支持字段,并对其应用NonSerializedAttribute。 Rocky Lhotka has sample code for this.

    不幸的是,它看起来确实非常冗长乏味,因为现在您必须为每个事件详细说明add、remove和raise方法。

    推荐文章