我正在向现有的 c# 应用程序添加一个 vb.net 程序集。
我所有的 vb.net 类型都继承自:
<Serializable()> _
Public Class BaseObject Implements INotifyPropertyChanged
Public Event PropertyChanged as PropertyChangedEventHandler
'Other helper methods'
End Class
我的问题是事件不能被序列化。在 c# 代码中,事件是这样声明的:
[field: NonSerialized]
public event PropertyChangedEventHandler PropertyChanged;
但我看不出如何用 vb.net 以任何方式做到这一点。是否有可用于使事件不序列化的扩展事件声明?还是其他归属?
最佳答案
如果您使用的是 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
否则,事情会变得更加困难。你必须自己做所有的工作,而不是把它留给编译器。见 this article了解更多详细信息和分步实现建议。
关于vb.net 事件声明 - 添加非序列化属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4377806/