Программирование
Веб программирование

Сериализация и десериализация в xml и бинарный файл

 
 

В этой статье я расскажу как можно сериализовать объект в файл в двоичном формате или в файл xml или десериализовать его.

Создадим форму с четырьмя кнопками и для каждой напишем код и еще объявим прямоугольник который мы будем сериализовать.

using System;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.Serialization.Formatters.Binary;
using System.Xml.Serialization;

namespace application
{
    public partial class Form1 : Form
    { 
        Rectangle rect = new Rectangle(0, 20, 30, 50)
        public Form1()
        {
            InitializeComponent();
        }
        
        //Сериализация прямоугольника в двоичный файл.
        private void button1_Click(object sender, EventArgs e)
        {
            BinaryFormatter formatter = new BinaryFormatter();
            FileStream file = new FileStream("file.dat", FileMode.Create, FileAcess.Write);
            formatter.Serialize(file, rect);
            file.Close();
        }

        //Сериализация прямоугольника файл Xml.
        private void button2_Click(object sender, EventArgs e)
        {
            XmlSerializer serializer = new XmlSerializer(rect.GetType());
            FileStream file = new FileStream("file.xml", FileMode.Create, FileAcess.Write);
            serializer.Serialize(file, rect);
            file.Close();
        }
       
       //Десериализация двоичного файла в объект.
       private void button3_Click(object sender, EventArgs e)
       {
           BinaryFormatter formatter = new BinaryFormatter();
           FileStream file = new FileStream("file.dat", FileMode.Open, FileAcess.Read);
           rect = formatter.Deserialize(file);
           file.Close();
       }

       //Десериализация файла Xml в объект.
       private void button4_Click(object sender, EventArgs e)
       {
           XmlSerializer deserializer = new XmlSerializer(rect.GetType());
           FileStream file = new FileStream("file.xml", FileMode.Open, FileAcess.Read);
           rect = deserializer.Deserialize(file);
           file.Close();
       }
    }
}

Если надо сериализовать свой класс то надо добавить в его исходный код атрибут [Serializable]


Есть вопросы? Спроси на нашем форуме!!
Progers300 [13.05.2014 23:03]

И как статья называется?

serega110 [24.05.2014 12:45]

Сериализация и десериализация в xml и бинарный файл



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.