VB.NET序列化實(shí)現(xiàn)方式簡單介紹
序列化在編程人員眼中是一個即重要又比較難以掌握的知識點(diǎn)。我們會為大家以一個最簡單的例子對VB.NET序列化做一個詳細(xì)的介紹。希望可以幫助初學(xué)者們初步的掌握這方面的知識點(diǎn),增加理解程度。#t#
序列化的基本方式:將對象送給Formatter,F(xiàn)ormatter將其序列化之后會形成一個流。這個流可以是文件流,或者其他的。
在這里,我們將一個隨機(jī)生成的數(shù)組進(jìn)行二進(jìn)制序列化,并保存到文件;然后把它從文件當(dāng)中取出,進(jìn)行反序列化重新得到這個數(shù)組。
首先是定義數(shù)組:
- Dim nums(10) As Integer
然后是生成數(shù)組內(nèi)容:
- Dim i As Integer
- For i = 0 To 10
- nums(i) = Int(Rnd()
* 500) + 100- Next
VB.NET序列化是通過Formatter對象來實(shí)現(xiàn)的。我們要新建一個Formatter對象:
- Dim sfFormatter As New
System.Runtime.Serialization.
Formatters.Binary.BinaryFormatter
BinaryFormatter是進(jìn)行二進(jìn)制序列化的。其它的序列化方式你可以在Runtime.Serialization.Formatters中找到。
我們還要有一個流來作為序列化的輸出:
- Dim fStream As New
FileStream(“1.dat”,
FileMode.Create)
準(zhǔn)備工作完了,現(xiàn)在可以調(diào)用Formatter的Serialize方法來進(jìn)行序列化了:
- sfFormatter.Serialize
(fStream, nums)
VB.NET序列化的***不要忘了關(guān)閉流:
- fStream.Close()
反序列化的方式大同小異,只不過調(diào)用的是Formatter的Deserialize方法。代碼是這樣的:
- Private Sub Deserialize()
- Dim fStream As New FileStream
(“1.dat”, FileMode.Open)- Dim sfFormatter As New System.
Runtime.Serialization.Formatters.
Binary.BinaryFormatter- nums = sfFormatter.Deserialize
(fStream)- fStream.Close()
- End Sub
VB.NET序列化就這么簡單。這里只是序列化整數(shù)數(shù)組。如果你要對自定義類的對象進(jìn)行序列化,你需要在類的定義前面加上:
- < Serializable()>
對于VB.NET序列化還有更高級的應(yīng)用,比方你可以指定類中的哪些成員不能被序列化,以及定義自己的序列化接口。本文到此為止。