Mega Code Archive

 
Categories / VB.Net Tutorial / Stream File
 

Deserialization Callback

Imports System Imports System.IO Imports System.Runtime.Serialization Imports System.Runtime.Serialization.Formatters.Binary Imports System.Runtime.Serialization.Formatters.Soap Public Class Tester     Public Shared Sub Main              Dim myClsSerializable As New SerializeObject()         SerializeBinary(myClsSerializable)         Console.WriteLine(FileContent(False))                          Dim myFileStream As FileStream         myFileStream = New FileStream("test.dat", FileMode.Open, FileAccess.Read)         Dim myFormatter As New BinaryFormatter()         myClsSerializable = CType(myFormatter.Deserialize(myFileStream), SerializeObject)     End Sub     Private Shared Function FileContent(ByVal blnBinary As Boolean) As String         Dim strContent As String         Dim myStreamReader As StreamReader         Dim myFileStream As FileStream         Dim i As Integer         Try             myFileStream = New FileStream("test.dat", FileMode.Open, FileAccess.Read)             If blnBinary = True Then                 For i = 1 To myFileStream.Length                     strContent += myFileStream.ReadByte.ToString + " "                 Next             Else                 myStreamReader = New StreamReader(myFileStream)                 strContent = myStreamReader.ReadToEnd             End If             myFileStream.Flush()             myFileStream.Close()             Return strContent         Catch ex As IOException             Console.WriteLine(ex.Message)         End Try     End Function     Private Shared Sub SerializeBinary(ByVal myClsSerializable As SerializeObject)         Dim myFileStream As FileStream = New FileStream("test.dat", FileMode.Create, FileAccess.Write)         Dim myBFormatter As BinaryFormatter = New BinaryFormatter()         myBFormatter.Serialize(myFileStream, myClsSerializable)         myFileStream.Flush()         myFileStream.Close()     End Sub End Class <Serializable()> _ Public Class SerializeObject     Implements IDeserializationCallback     Public firstNumber As Integer     Public secondNumber As Integer     <NonSerialized()> Public thirdNumber As Integer     <NonSerialized()> Public forthNumber As Integer     Public Sub New()         firstNumber = 1000         secondNumber = 2000         thirdNumber = 100         forthNumber = 200     End Sub     Public Sub OnDeserialization(ByVal sender As Object) _        Implements IDeserializationCallback.OnDeserialization        Console.WriteLine("OnDeserialization")         thirdNumber = 100     End Sub End Class