VB.Net/XML/XML Serialize

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

Serialize Class to XML Document

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

  Shared Sub Main()
       Dim emp As New Employee("Joe", "Yin")
       Dim string_writer As New StringWriter()
       Dim serializer As New XmlSerializer(GetType(Employee))
       serializer.Serialize(string_writer, emp)
       Console.WriteLine(string_writer.ToString)
  End Sub 

End Class

   <Serializable()> _
   Public Class Employee
       Public FirstName As String
       Public LastName As String
       Public Sub New()
       End Sub
       Public Sub New(ByVal first_name As String, ByVal last_name As String)
           FirstName = first_name
           LastName = last_name
       End Sub
   End Class

          
      </source>


XmlSerializer Demo

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

Public Class MainClass

  Public Shared Sub Main()
       Dim dehydrated As FileStream = New FileStream("test.xml", FileMode.Open)
       Dim serialize As XmlSerializer = New XmlSerializer(GetType(Product_Multiple))
       Dim myProduct As Product_Multiple = New Product_Multiple
       myProduct = serialize.Deserialize(dehydrated)
       Dim SingleProduct As Product
       For Each SingleProduct In myProduct.multiProducts
           Console.Out.WriteLine("{0}, {1}, {2}", _
              SingleProduct.name, _
              SingleProduct.productId, _
              SingleProduct.quantity)
       Next
  End Sub

End Class

Public Class Product_Multiple

   Public multiProducts() As Product
   Public Sub New()
   End Sub
   Public Sub New(ByVal multiProducts() As Product)
       Me.multiProducts = multiProducts
   End Sub

End Class

Public Class Product

   Public name As String
   Public productId As Integer
   Public quantity As Integer
   Public Sub New()
   End Sub
   Public Sub New(ByVal name As String, _
                  ByVal productId As Integer, _
                  ByVal quantity As Integer)
       Me.name = name
       Me.productId = productId
       Me.quantity = quantity
   End Sub

End Class

"<?xml version="1.0" encoding="utf-8" ?> "<Product_Multiple xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> " <multiProducts> " <Product> " <name>Grease</name> " <productId>101</productId> " <quantity>10</quantity> " </Product> " <Product> " <name>Lawrence of Arabia</name> " <productId>102</productId> " <quantity>10</quantity> " </Product> " <Product> " <name>Star Wars</name> " <productId>103</productId> " <quantity>10</quantity> " </Product> " </multiProducts> "</Product_Multiple>

      </source>