VB.Net Tutorial/XML/XmlSerializer

Материал из VB Эксперт
Перейти к: навигация, поиск

DeSerialize from xml file

<source lang="vbnet">Imports System.Xml.Serialization, System.IO Public Class Tester

   Public Shared Sub Main
   
     Dim theSerializer As New XmlSerializer(GetType(employee))
     Dim sw As New StreamReader("data.xml")
     Dim theWorker As employee
     theWorker = theSerializer.Deserialize(sw)
     Console.WriteLine(theWorker.first_name )
     Console.WriteLine(theWorker.last_name )
     Console.WriteLine(theWorker.title)
   End Sub

End Class Public Class employee

  Public first_name As String
  Public last_name As String
  Public title As String
  Public Sub New()
  End Sub
  Public Sub New(ByVal first_name As String,ByVal last_name As String,ByVal title As String)
     Me.first_name = first_name
     Me.last_name = last_name
     Me.title = title
  End Sub

End Class</source>

Serialize Class to xml file

<source lang="vbnet">Imports System.Xml.Serialization, System.IO Public Class Tester

   Public Shared Sub Main
   
     Dim theSerializer As New XmlSerializer(GetType(employee))
     Dim SGamgee As New employee("A", "G", "C")
     Dim sw As New StreamWriter("data.xml")
     theSerializer.Serialize(sw, SGamgee)
   End Sub

End Class Public Class employee

  Public first_name As String
  Public last_name As String
  Public title As String
  Public Sub New()
  End Sub
  Public Sub New(ByVal first_name As String,ByVal last_name As String,ByVal title As String)
     Me.first_name = first_name
     Me.last_name = last_name
     Me.title = title
  End Sub

End Class</source>

XML Serialization

<source lang="vbnet">Imports System.IO Imports System.Xml.Serialization Public Class Point

 Public X As Integer
 Public Y As Integer
 Public Overrides Function ToString() As String
   Return "(" & X & "," & Y & ")"
 End Function 

End Class Module Test

 Sub Main()
   Dim P1 As New Point()
   P1.X = 6
   P1.Y = 4
   SaveToFile(P1)
   Dim P2 As Point = RetrieveFromFile()
   Console.WriteLine(P2.ToString())
 End Sub
 Sub SaveToFile(P as Point)
   Dim Serializer As New XmlSerializer(GetType(Point))
   Dim Writer As StreamWriter = New StreamWriter("point.xml") 
   Serializer.Serialize(Writer, P) 
   Writer.Close()
 End Sub
 Function RetrieveFromFile() As Point
   Dim ReturnObject As Point
   Dim Serializer As New XmlSerializer(GetType(Point)) 
   Dim FS As FileStream = New FileStream("point.xml", FileMode.Open) 
   ReturnObject = CType(Serializer.Deserialize(FS), Point) 
   FS.Close()
   Return ReturnObject
 End Function

End Module</source>

(6,4)