实例说明
在本实例中,我们将利用VB.NET向大家展示一个串行化数据的实例。程序运行结果如图55-1所示。
图55-1 运行结果
技术要点
l 串行化的概念
l 进行读写操作
实现过程
■ 新建项目
打开Visual Studio.NET,选择"新建项目",在项目类型窗口中选择"Visual Basic项目",在模板窗口中选择"类库",在名称域中输入"SerializeTest",然后选择保存路径。单击"确认"。
Imports System
Imports System.IO
Imports System.Collections
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatters.Binary
Namespace ClassLibrary1
Public Class SerializeTest
Public Shared Sub Main()
Console.WriteLine("Create object graph")
Dim l As New ArrayList
Dim x As Integer
For x = 0 To 9
Console.WriteLine(x)
l.Add(x)
Next x
Console.Write("Serializing object graph to disk..")
Dim s As Stream = File.Open("foo.bin",FileMode.Create,FileAccess.ReadWrite)
Dim b As BinaryFormatter = New BinaryFormatter
b.Serialize(s,l)
s.Close()
Console.WriteLine("Complete.")
Console.Write("Deserializing object graph from disk..")
Dim r As Stream = File.Open("foo.bin",FileMode.Open,FileAccess.Read)
Dim c As New BinaryFormatter
Dim p As ArrayList = CType(c.Deserialize(r),ArrayList)
Console.WriteLine("Complete.")
Dim i As Object
For Each i In p
Console.WriteLine(i)
Next i
r.Close()
Console.WriteLine(Microsoft.VisualBasic.ControlChars.CrLf & "Press Return to exit.")
Console.Read()
End Sub
End Class
End Namespace
■ 运行程序
单击菜单"调试|启动"或单击 图标运行程序。
小结
串行化是把图式对象转换成为线性字节串行的过程。字节序列可以发送到别处,例如远程计算机,然后执行序列解码,这样就在远程主机内存中生成了原来图式对象的克隆。串行化过程在VB.NET中是十分容易使用的,而且是开放的,每个VB6的程序员都曾经自觉或不自觉地使用过串行化。当任何ActiveX dll或者ActiveX exe被创建后,都有五个属性可以设置,最后一个Persistable属性就是VB6中的串行化。VB6中串行化的过程不需要用户认知,大部分开发人员也从来不管串行化做了什么和如何运作。在VB.NET中,有着公共对象库,每个支持.NET体系的语言都可以通过System.Runtime.Serialization的名字空间来理解和使用VB.NET的串行化特征。
串行化可以替代任何流,象MemoryStream,NetStream等,而不仅仅是FileStream