VB.Net Tutorial/Class Module/Class Serialization — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 15:55, 26 мая 2010
Class Serialization
<source lang="vbnet">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</source>
John Doe 07/11/2005 12:00:00 AM Salaray: 10000