ASPNET揭秘笔记之九
使用序列化
序列化(Serialization)是把一个对象或一组对象转换成可持久保存形态的过程。比如可以把一个对象序列化到文件系统或数据库表中。在对喜爱那个被保存到持久稳固的介质后,可以反序列化(deserialize)该对象,以便恢复它。
序列化可以在任何时刻即使完成地保存对象的状态,当序列化一个对象时,也可以序列化其属性值。比如,如果序列化ArrayList到硬盘,那么ArrayList本身及其所有元素都被保存到硬盘了。
.Net框架包括如下可以用来序列化和反序列化对象的类。
BinaryFormatter--可以把对象序列化和反序列化成二进制格式。
SoapFormatter--可以把对象序列化和反序列化成Soap格式。
XMLSerializer--可以把对象序列化和反序列化成XML格式。
使用二进制序列化:
BinaryFormatter类具有两个重要的方法,Serialize和DeSerialize。要序列化一个对象,就要把一个流(Stream)的实例和该对象传递给Serialize方法。要反序列化一个对象,就要把流的实例传递给Deserialize方法。
BF不嫩序列化诸如DataReader或TextBox控件这样的类。一个类必须具有Serializable属性或者实现了ISerializable接口,才能被序列化。
序列化一个数组
Private Sub LinkButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
Dim colAL As ArrayList
Dim objFS As FileStream
Dim objBF As BinaryFormatter
colAL = New ArrayList
colAL.Add("milk")
colAL.Add("oranges")
colAL.Add("beer")
objFS = New FileStream(MapPath("myarr.data"), FileMode.Create)
objBF = New BinaryFormatter
objBF.Serialize(objFS, colAL)
objFS.Close()
End Sub
反序列化数组
Private Sub LinkButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton2.Click
Dim colAL As ArrayList
Dim objFS As FileStream
Dim objBF As BinaryFormatter
Dim strItem As String
objFS = New FileStream(MapPath("myarr.data"), FileMode.Open)
objBF = New BinaryFormatter
colAL = CType(objBF.Deserialize(objFS), ArrayList)
objFS.Close()
For Each strItem In colAL
Me.lblMessage.Text &= "<li>" & strItem.Trim
Next
End Sub
在梦想和现实之间寻找平衡 在欲望和理想之间左右的妥协!平淡又平凡的努力生活!


浙公网安备 33010602011771号