Mega Code Archive

 
Categories / VB.Net by API / System Runtime Serialization Formatters Soap
 

SoapFormatter Deserialize

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 ClsSerializable()         SerializeSoap(myClsSerializable)         Console.WriteLine(FileContent(False))                          Dim myFileStream As FileStream         myFileStream = New FileStream("test.dat", FileMode.Open, FileAccess.Read)         Dim myFormatter As New SoapFormatter()         myClsSerializable = CType(myFormatter.Deserialize(myFileStream), ClsSerializable)         Console.WriteLine(myClsSerializable.strMessage)     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 SerializeSoap(ByVal myClsSerializable As ClsSerializable)         Dim myFileStream As FileStream         Dim myBFormatter As SoapFormatter = New SoapFormatter()         Try             myFileStream = New FileStream("test.dat", FileMode.Create, FileAccess.Write)             myBFormatter.Serialize(myFileStream, myClsSerializable)             myFileStream.Flush()             myFileStream.Close()         Catch ex As Exception             Console.WriteLine(ex.Message)         End Try     End Sub End Class <Serializable()> _  Public Class ClsSerializable                    Implements ISerializable     Public intNumber As Integer = 1000     Public strMessage As String = "this is a string"     Public lngTest As Long     Public intArrayX(10) As Integer     Public intArrayY(10) As Integer     Public Sub New()         ChangeMmberValue()     End Sub     Public Sub GetObjectData _      (ByVal info As SerializationInfo, ByVal context As StreamingContext) _      Implements ISerializable.GetObjectData         info.AddValue("intNumber", intNumber)         info.AddValue("message", strMessage)         info.AddValue("intArrayX", intArrayX)     End Sub     Public Sub New _      (ByVal info As SerializationInfo, ByVal context As StreamingContext)         intNumber = CInt(info.GetValue("intNumber", intNumber.GetType))         strMessage = CStr(info.GetValue("message", strMessage.GetType))         intArrayX = info.GetValue("intArrayX", intArrayX.GetType)     End Sub     Public Sub ChangeMmberValue()         Dim i As Integer         For i = 0 To 9             intArrayX(i) = i * 100         Next i         intNumber = 2000         strMessage = "this is another string"     End Sub End Class