【发布时间】:2014-02-28 17:14:43
【问题描述】:
我有一个实现 ISerializable 接口的类,带有一个保存和检索的私有字段:
Protected Sub New(ByVal info As SerializationInfo, ByVal context As StreamingContext)
_name= info.GetString("_name")
End Sub
现在,我想添加一个新的私有字段,但由于它以前不存在,当我尝试打开一个序列化对象时,在自定义反序列化构造函数中尝试获取该字段时出现异常。我想出的解决方案是使用 Try...Catch 块,如下所示:
Protected Sub New(ByVal info As SerializationInfo, _
ByVal context As StreamingContext)
_name= info.GetString("_name")
Try
_active= info.GetBoolean("_active")
Catch ex As Exception
_active= False
End Try
End Sub
它可以工作,但对我来说似乎有点混乱,而且因为我必须为我要添加的每个新字段添加一个新的 Try...Catch 块。 有没有更好的方法呢?
谢谢!
编辑: 在this answer t0mm13b 中说“在 2.0+ 版本中有更简洁的方法可以做到这一点”。关于他在说什么有什么想法吗?
【问题讨论】:
标签: vb.net serialization