Copyright © 2015, mgr inż. Janusz Bonarowski 1
Zapis/odczyt właściwości obiektu serializacją do pliku xml
Zadanie
Utwórzmy klasę Prostokat o właściwościach Dlugosc_boku1 i Dlugosc_boku2.
Utwórzmy instancję tej klasy. Podstawmy wartości właściwości z TextBoxów.
Zapiszmy serializacją obiekt w pliku xml.
Przeedytujmy plik xml, korzystając z Notatnika, zmniejszając wartości właściwości o połowę.
Odczytajmy serializacją plik xml po zmianie i wyświetlmy wartości właściwości.
Form1.vb
Imports System.IO Imports System.Xml
Public Class Form1
Dim mojP As New Prostokat
Private Sub btnZapisz_Click(sender As Object, e As EventArgs) _
Handles btnZapisz.Click mojP.Dlugosc_boku1 = CSng(TextBox1.Text)
mojP.Dlugosc_boku2 = CSng(TextBox2.Text) '
' Zapisanie właściwości obiektu do pliku serializacją '
Dim SerializacjaDoPlikuXml As Serialization.XmlSerializer Dim plikXML As FileStream = _
New FileStream("Dane_prostokata.xml", FileMode.Create, FileAccess.Write, FileShare.None)
SerializacjaDoPlikuXml = _
New Serialization.XmlSerializer(GetType(Prostokat)) SerializacjaDoPlikuXml.Serialize(plikXML, mojP)
plikXML.Close()
MsgBox("Plik XML został zapisany.") End Sub
Private Sub btnOdczytaj_Click(sender As Object, e As EventArgs) _
Handles btnOdczytaj.Click ' Odczytanie właściwości z pliku xml
Dim PlikDanych As FileStream =
File.Open("Dane_prostokata.xml", FileMode.Open, FileAccess.Read) Dim MojaSerializacja As New _
Serialization.XmlSerializer(GetType(Prostokat)) mojP = MojaSerializacja.Deserialize(PlikDanych) PlikDanych.Close()
' Przełożenie właściwości z obiektu do TextBoxów TextBox1.Text = mojP.Dlugosc_boku1.ToString TextBox2.Text = mojP.Dlugosc_boku2.ToString MsgBox("Plik XML został odczytany.")
End Sub End Class
Copyright © 2015, mgr inż. Janusz Bonarowski 2
Class1.vb
Public Class Prostokat
Private _Dlugosc_boku1 As Single Private _Dlugosc_boku2 As Single
Public Property Dlugosc_boku1 As Single Get
Return _Dlugosc_boku1 End Get
Set(value As Single)
_Dlugosc_boku1 = value End Set
End Property
Public Property Dlugosc_boku2 As Single Get
Return _Dlugosc_boku2 End Get
Set(value As Single)
_Dlugosc_boku2 = value End Set
End Property End Class
Jeśli zapisaliśmy aplikację w katalogu:
c:\tkm\gr_2.1_MiBM\xml_serializacja
i w kodzie nie zapisaliśmy pliku w jakiejś szczególnej lokalizacji, to odnajdziemy go na ścieżce:
c:\tkm\gr_2.1_MiBM\xml_serializacja\xml_serializacja\bin\Debug\Dane_prostokata.xml
Rysunek 1. Plik xml przed edycją w Internet Explorzerze
Rysunek 2. Plik po edycji w Notatniku