我有一个类
<Serializable()> Public Class DataTableEx
Inherits DataTable
Public Info As String
End Class序列化的时候正常
Public Sub SaveTablesToFile(ByVal path As String)
Dim fs As New FileStream(path, FileMode.Create)
Dim formatter As New BinaryFormatter
Try
formatter.Serialize(fs, info)
Catch e As SerializationException
MessageBox.Show(e.Message, "系列化错误")
Throw
Finally
fs.Close()
End Try
End Sub反序列化的时候出错了,怎么回事?
Public Sub LoadTablesFromFile(ByVal path As String)
Dim fs As New FileStream(path, FileMode.Open, FileAccess.Read)
Try
Dim formatter As New BinaryFormatter
info = DirectCast(formatter.Deserialize(fs), DataTableEx)
Catch e As SerializationException
MessageBox.Show(e.Message, "反系列化错误")
Return
Finally
fs.Close()
End Try
End Sub Dim info As DataTableEx
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
info = New DataTableEx
info.TableName = "Customers" Dim workCol As DataColumn = info.Columns.Add("CustID", Type.GetType("System.Int32"))
workCol.AllowDBNull = False
workCol.Unique = True info.Columns.Add("CustLName", Type.GetType("System.String"))
info.Columns.Add("CustFName", Type.GetType("System.String"))
info.Columns.Add("Purchases", Type.GetType("System.Double")) DataGrid1.DataSource = info
SaveTablesToFile("c:\cc.dat")
LoadTablesFromFile("c:\cc.dat")
End Sub
<Serializable()> Public Class DataTableEx
Inherits DataTable
Public Info As String
End Class序列化的时候正常
Public Sub SaveTablesToFile(ByVal path As String)
Dim fs As New FileStream(path, FileMode.Create)
Dim formatter As New BinaryFormatter
Try
formatter.Serialize(fs, info)
Catch e As SerializationException
MessageBox.Show(e.Message, "系列化错误")
Throw
Finally
fs.Close()
End Try
End Sub反序列化的时候出错了,怎么回事?
Public Sub LoadTablesFromFile(ByVal path As String)
Dim fs As New FileStream(path, FileMode.Open, FileAccess.Read)
Try
Dim formatter As New BinaryFormatter
info = DirectCast(formatter.Deserialize(fs), DataTableEx)
Catch e As SerializationException
MessageBox.Show(e.Message, "反系列化错误")
Return
Finally
fs.Close()
End Try
End Sub Dim info As DataTableEx
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
info = New DataTableEx
info.TableName = "Customers" Dim workCol As DataColumn = info.Columns.Add("CustID", Type.GetType("System.Int32"))
workCol.AllowDBNull = False
workCol.Unique = True info.Columns.Add("CustLName", Type.GetType("System.String"))
info.Columns.Add("CustFName", Type.GetType("System.String"))
info.Columns.Add("Purchases", Type.GetType("System.Double")) DataGrid1.DataSource = info
SaveTablesToFile("c:\cc.dat")
LoadTablesFromFile("c:\cc.dat")
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货