vb.net 事件声明 - 添加非序列化属性

标签 vb.net

我正在向现有的 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/

相关文章:

.net - 如何在 RichTextBox 中创建上下文菜单

c# - C Sharp 中的 SqlDataAdapter 错误

vb.net - 所有类都应该实现 IDisposable 接口(interface)吗?

wpf - 在 Canvas 上获取鼠标位置(但不在窗口上)?

asp.net - asp :FileUpload has no file(flUploadDoc. HasFile = false) 第一次回发

vb.net - 传递给子组件的可选表单名称参数

asp.net - Facebook .net 开发工具包 - setinfo

vb.net - DataGridView 中的额外行

sql - 无法解决打开的数据读取器错误(需要关闭)

asp.net - 在 javascript(或 ASP.NET VB)中获取本地文件夹的内容