Class Serialization
Imports System.Runtime.Serialization
Public Class Tester
Public Shared Sub Main
Dim newEmp As New Employee
Dim outFile As IO.FileStream
Dim formatter As New Formatters.Binary.BinaryFormatter
newEmp.FullName = "John Doe"
newEmp.HireDate = #11/7/2005#
newEmp.Salary = 10000@
outFile = New IO.FileStream("EmpData.dat",IO.FileMode.Create)
formatter = New Formatters.Binary.BinaryFormatter
formatter.Serialize(outFile, newEmp)
outFile.Close()
Dim oldEmp As Employee = Nothing
Dim inFile As IO.FileStream
inFile = New IO.FileStream("EmpData.dat",IO.FileMode.Open)
formatter = New Formatters.Binary.BinaryFormatter
oldEmp = CType(formatter.Deserialize(inFile), Employee)
inFile.Close()
Console.WriteLine(oldEmp.FullName)
Console.WriteLine(oldEmp.HireDate.ToString())
Console.WriteLine("Salaray: " & oldEmp.Salary.ToString())
End Sub
End Class
<Serializable()> _
Public Class Employee
Implements ISerializable
Public FullName As String
Public HireDate As Date
Private CurrentSalary As Decimal
Public Property Salary() As Decimal
Get
Return CurrentSalary
End Get
Set(ByVal value As Decimal)
CurrentSalary = value
End Set
End Property
Public Sub New()
End Sub
Public Sub New(ByVal info As SerializationInfo, _
ByVal context As StreamingContext)
FullName = info.GetString("FullName")
HireDate = info.GetDateTime("HireDate")
CurrentSalary = info.GetDecimal("Salary")
End Sub
Public Sub GetObjectData( _
ByVal info As SerializationInfo, _
ByVal context As StreamingContext) _
Implements ISerializable.GetObjectData
info.AddValue("FullName", FullName)
info.AddValue("HireDate", HireDate)
info.AddValue("Salary", CurrentSalary)
End Sub
End Class
John Doe
07/11/2005 12:00:00 AM
Salaray: 10000