vb.net事件声明 - 添加非序列化归因

Adi*_* Om 3 vb.net

我正在向现有的c#应用程序添加一个vb.net程序集.
我的所有vb.net类型都继承自:

<Serializable()> _
Public Class BaseObject Implements INotifyPropertyChanged

    Public Event PropertyChanged as PropertyChangedEventHandler

    'Other helper methods'
End Class
Run Code Online (Sandbox Code Playgroud)

我的问题是该事件无法序列化.在c#代码中,事件声明如下:

 [field: NonSerialized]
 public event PropertyChangedEventHandler PropertyChanged;
Run Code Online (Sandbox Code Playgroud)

但我无法用vb.net看到如何以任何方式做到这一点.是否有扩展的事件声明,我可以使用它来使事件不序列化?或其他归属?

Cod*_*ray 5

如果您使用的是Visual Basic 10(与Visual Studio 2010一起提供),则可以NonSerializedAttribute像在C#中一样添加到事件中.例如:

<Serializable()> _
Public Class BaseObject Implements INotifyPropertyChanged

    <NonSerialized()> _
    Public Event PropertyChanged as PropertyChangedEventHandler

    'Other helper methods'
End Class
Run Code Online (Sandbox Code Playgroud)

否则,事情变得更加困难.你必须自己完成所有的工作,而不是把它留给编译器.有关更多详细信息和逐步实施建议,请参阅此文章.