Реклама:
Туда бегите покупать комбайн Джон Дир смело.
Рейтинг блогов

Использование XML.Serialization

дата добавления: 08 января 2007 / 09:49, просмотров: 6120, комментариев: 1
В данном обзоре речь пойдет об использование XML.Serialization в .NET и ее применении на примере сохранения и считывания настроек программы с использованием синтаксиса языка Visual Basic .NET.

System.XML.Serialization


Пространство имен System.XML.Serialization содержит классы, которые позволяют преобразовывать объекты в формат XML и обратно.
В данном обзоре будет рассмотрен только один класс сериализации – XmlSerializer.

Пожалуй, начнем


Как я уже ранее говорил, в данном обзоре будет рассмотрении пример использования сериализации для сохранения и считывания настроек программы. Для начала, нужно создать программу, далеко ходить не будем и создадим обычное Windows приложение, на форме разместим 2 текстовых поля, для примера этого более чем достаточно. Далее, нужно создать класс, который будет представлять настройки нашего приложения, и содержать значения двух наших текстовых полей. Назовем его Config:

Config.vb
Imports System.Xml.Serialization
Public Class Config
  Public text1 As String = ""
  Public text2 As String = ""
End Class

Теперь нужно создать новый экземпляр класса в нашей форме, и написать код для считывания и записи настроек. Считывать настройки мы будем в событие формы Load, а записывать в Disposed. Также нужно чтобы при изменении текста в текстовых полях, данные обновлялись в нашем объекте Config, фиксировать изменения мы будем в событие TextChanged текстовых полей.

Form.vb
'экземпляр класса настроек программы
Dim myConfig As New Config
'путь к файлу настроек
Dim myConfigFileName As String = Application.StartupPath & "config.xml"
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
  myConfig.text1 = TextBox1.Text
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
  myConfig.text2 = TextBox2.Text
End Sub
Private Sub Form1_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
  'сохраняем текущие настройки
  Dim mySerializer As New XmlSerializer(GetType(Config))
  Dim myWriter As New IO.StreamWriter(myConfigFileName)
  mySerializer.Serialize(myWriter, myConfig)
  myWriter.Close()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  'загрузка настроек, если есть
  Dim FI As New IO.FileInfo(myConfigFileName)
  If FI.Exists Then 'если файл существует, читаем его
    Dim mySerializer As New XmlSerializer(GetType(Config))
    Dim myReader As New IO.StreamReader(myConfigFileName)
    myConfig = mySerializer.Deserialize(myReader)
    myReader.Close()
  End If
  'применяем настройки
  TextBox1.Text = myConfig.text1
  TextBox2.Text = myConfig.text2
End Sub

Вот собственно и все, будут вопросы, пишите, а лучше задавайте их на форуме http://kbyte.ru/forum.

Немного модифицированный пример лежит в аттаче (см. в низу, в разделе «Файлы»).

Комментарии (всего: 1)

Добавить комментарий rss
Автор: andreywin @ 22 декабря 2007, 00:16   ·   ссылка
Спасибо классный пример, продолжай в том же духе

Добавить комментарий

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учётная запись на этом сайте, пройдите процудуру авторизации.
В противном случае, зарегистрируйтесь на сайте.