VB.Net/XML/XML Serialize

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

Serialize Class to XML Document

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


XmlSerializer Demo

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>