我需要避免序列化 Event 类成员,因为当事件由未标记为可序列化的对象处理时,序列化将失败。
我尝试在 Event 类成员上使用 NonSerialized 属性,但无法编译。这行代码:
<NonSerialized()> Public Event PropertyValueChanged()
产生以下错误:
属性“非序列化属性”
不能应用于
'PropertyValueChanged' 因为
属性对此无效
声明类型。
Public Event PropertyValueChanged() ' compiles but needs the extra handling described below
还有其他方法可以避免序列化事件成员吗?
如果事件未处理,这不是问题,我可以通过在序列化对象之前克隆对象(并忽略事件)来解决这个问题。只是想知道是否有更好的方法。
Thanks.
在 C# 中,你可以按如下方式执行此操作,所以我hope这与 VB 的翻译相同。
请注意,这仅适用于类似现场的事件(即您没有自己的事件)add
/remove
):
[field: NonSerialized]
public event EventType EventName;
否则类似:
[NonSerialized]
EventType backingField;
public event EventType {
add { backingField += value; }
remove { backingField -= value; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)