Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET序列化带有附加事件的类时遇到的困难_Vb.net_Events_Serialization - Fatal编程技术网

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

VB.NET序列化带有附加事件的类时遇到的困难,vb.net,events,serialization,Vb.net,Events,Serialization,令人惊讶的是,这里还没有人问这个问题,但下面是: VB.NET中的序列化有点麻烦。如果使用标准的Serializable()属性,并尝试序列化具有附加到处理程序的事件的类,则它也将尝试序列化处理程序 来自C#背景的我不习惯处理这个问题,我能找到的最好的解决方案是使用一个代码项目类 但是,我不想因为这个想法而改变对象继承结构 对VB.NET中创建的类进行序列化的标准方法是什么 我听说过删除所有处理程序,序列化,然后重新添加所有处理程序,但这是否会导致事件触发而无法处理?在C#中,解决方案是使用属性

令人惊讶的是,这里还没有人问这个问题,但下面是:

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

来自C#背景的我不习惯处理这个问题,我能找到的最好的解决方案是使用一个代码项目类

但是,我不想因为这个想法而改变对象继承结构

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

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

在C#中,解决方案是使用属性上的
字段:
前缀,将NonSerializedAttribute应用于事件的backing字段。不幸的是,VB不支持
字段:
技巧,因此需要使事件的支持字段显式,并对其应用NonSerializedAttribute

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