加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[VB.NET]串行化数据

发布时间:2020-12-16 23:57:38 所属栏目:大数据 来源:网络整理
导读:串行化数据 实例说明 在本实例中,我们将利用VB.NET向大家展示一个串行化数据的实例。程序运行结果如图55-1所示。 图55-1 运行结果 技术要点 l 串行化的概念 l 进行读写操作 实现过程 ■ 新建项目 打开Visual Studio.NET,选择"新建项目",在项目类型窗口中选
串行化数据

实例说明

在本实例中,我们将利用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读