Fla*_*ash 7 vb.net serialization visual-studio-2010 binaryformatter deserialization
我写了一个自定义类MyClass并用<Serializable()>属性标记它.我在我的硬盘驱动器上有一组二进制文件,我使用BinaryFormatter来自实例的序列化MyClass.
我最近MyClass稍微改变了结构(添加了一些属性,删除了一些属性,改变了一些方法等).
当我尝试使用下面的代码将现有对象反序列化为此更改的类时会发生什么?我已经尝试了它并没有抛出错误或任何东西 - 但是当类改变时它肯定无法正确反序列化?有没有办法可以从序列化文件中获取一些有用的信息,即使我已经更新了这个类?
谢谢.
这是我用来进行序列化的代码:
Public Sub serializeObject(ByVal obj As Object, ByVal outFilename As String)
Dim fStream As FileStream
Try
fStream = New FileStream(outFilename, FileMode.Create)
Dim bfmtr As New BinaryFormatter
bfmtr.Serialize(fStream, obj)
fStream.Close()
Catch ex As Exception
MsgBox("Failed to serialize: " & ex.Message)
Throw
End Try
End Sub
Run Code Online (Sandbox Code Playgroud)
并且我正在使用反序列化:
myObj = CType(deserializeObject("C:\myobject.bin"), MyClass))
Run Code Online (Sandbox Code Playgroud)
在哪里deserializeObject:
Public Function deserializeObject(ByVal srcFilename As String) As Object
If File.Exists(srcFilename) Then
Dim fStream As Stream = File.OpenRead(srcFilename)
Dim deserializer As New BinaryFormatter
Dim returnObject As Object = deserializer.Deserialize(fStream)
fStream.Close()
Return returnObject
Else
Throw New ApplicationException("File not found: " & srcFilename)
End If
End Function
Run Code Online (Sandbox Code Playgroud)
添加和删除字段不应该有任何问题 - 我有经验证明,但我不知道序列化的详细工作原理。
更改私有属性的名称时可能会遇到问题。所有其他事情,甚至重新排序字段,你都很酷。
| 归档时间: |
|
| 查看次数: |
3075 次 |
| 最近记录: |