2013年3月15日 星期五

Serialization

把物件(object)轉換成stream,以便儲存物件或將物件傳送到記憶體,資料庫或檔案當中,以便日後可以回復object的狀態。

雖然object可以透過初始化設定成預設狀態,but使用者在runtime所造成object的改變則需要透過Serialization來記錄。

依stream編碼方式的不同,Serialization可以分成binary與XML兩種,一般的window應用程式用binary儲存即可,且效率較好,但web應用程式則多用XML格式



實際操作如下(摘自MSDN)

首先 為了做serialization,需在想要serialize的class上以<Serializable()>宣告
ex:
<Serializable()>
Public Class MyClass

若在Myclass中有不想做serialization 的member須以<NonSerialized()>宣告

在implement的地方需imports如下
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary

讀取:
//開檔
Dim TestFileStream As Stream = File.Create(FileName)
//指定serialization 的stream 格式
Dim serializer As New BinaryFormatter
//serialization
serializer.Serialize(TestFileStream, TestLoan)
//關檔
TestFileStream.Close()

儲存:
//確定檔案存在
If File.Exists(FileName) Then
//開檔
Dim TestFileStream As Stream = File.OpenRead(FileName)
//指定serialization格式
Dim deserializer As New BinaryFormatter
//從Stream中讀取資料並轉換成指定儲存時的物件class
TestLoan = CType(deserializer.Deserialize(TestFileStream), LoanClass.Loan)
//關檔
TestFileStream.Close()
End If

沒有留言:

張貼留言