溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

VB.NET中怎么實(shí)現(xiàn)對(duì)象存儲(chǔ)

發(fā)布時(shí)間:2021-08-11 15:51:29 來(lái)源:億速云 閱讀:167 作者:Leah 欄目:編程語(yǔ)言

本篇文章為大家展示了VB.NET中怎么實(shí)現(xiàn)對(duì)象存儲(chǔ),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

VB.NET對(duì)象存儲(chǔ)采用BinaryFormatte以二進(jìn)制的形式,或者用SoapFormatter類(lèi)以XML格式都可以序列化一個(gè)具體的對(duì)象。只要把所有BinaryFormatter的引用改為SoapFormatter,無(wú)需改變?nèi)魏未a,就可以以XML格式序列化對(duì)象。

VB.NET對(duì)象存儲(chǔ)時(shí)首先創(chuàng)建一個(gè)BinaryFormatter實(shí)例:

  1. Dim BinFormatter As 
    New Binary.BinaryFormatter() 

然后創(chuàng)建一個(gè)用于用于VB.NET對(duì)象存儲(chǔ)的序列化對(duì)象的FileStream對(duì)象:

  1. Dim FS As New System.IO.
    FileStream("c:\test.txt", 
    IO.FileMode.Create) 

接著調(diào)用BinFormatter的Serialize方法序列化任何可以序列化的framework對(duì)象:

  1. R = New Rectangle(rnd.
    Next(0, 100),rnd.Next(0, 300), _  

  2. rnd.Next(10, 40),rnd.Next(1, 9))  

  3. BinFormatter.Serialize(FS, R) 

加一個(gè)Serializable屬性使得自定義的對(duì)象可以序列化

< Serializable()>   Public Structure Person  Dim Name As String  Dim Age As Integer  Dim Income As Decimal  End Structure

下面代碼創(chuàng)建一個(gè)Person對(duì)象實(shí)例,然后調(diào)用BinFormatter的Serialize方法序列化自定義對(duì)象:

P = New Person()  P.Name = "Joe Doe" P.Age = 35 P.Income = 28500 BinFormatter.Serialize(FS, P)

你也可以在同一個(gè)Stream中接著序列化其他對(duì)象,然后以同樣的順序讀回。例如,在序列化Person對(duì)象之后接著序列化一個(gè)Rectangle對(duì)象:

  1. BinFormatter.Serialize
    (FS, New Rectangle
    (0, 0, 100, 200)) 

創(chuàng)建一個(gè)BinaryFormatter對(duì)象,調(diào)用其Deserialize方法,然后把返回的值轉(zhuǎn)化為正確的類(lèi)型,就是整個(gè)反序列化過(guò)程。然后接著發(fā)序列化Stream的其他對(duì)象。

假定已經(jīng)序列化了Person和Rectangle兩個(gè)對(duì)象,以同樣的順序,我們反序列化就可以得到原來(lái)的對(duì)象:

  1. Dim P As New Person()  

  2. P = BinFormatter.Serialize
    (FS, Person)  

  3. Dim R As New Rectangle  

  4. R = BinFormatter.Serialize
    (FS, Rectangle) 

上述內(nèi)容就是VB.NET中怎么實(shí)現(xiàn)對(duì)象存儲(chǔ),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI