Головна‎ > ‎C#‎ > ‎Додатково‎ > ‎

Серіалізація

Бінарна серіалізація

   class Program
    {
        [Serializable]
        public class UserPrefs
        {
            public string WindowColor;
            public int FontSize;
        }

        static void Main(string[] args)
        {
            UserPrefs userData = new UserPrefs();
            userData.WindowColor = "Yellow";
            userData.FontSize = 50;

            BinaryFormatter binFormat = new BinaryFormatter();
            using (Stream fStream = new FileStream("user.dat",
               FileMode.Create, FileAccess.Write, FileShare.None))
            {
                binFormat.Serialize(fStream, userData);
            }
        }
    }




    public class Program
    {
        [Serializable]
        public class UserPrefs
        {
            public string WindowColor;
            public int FontSize;
        }
        static void Main(string[] args)
        {
            UserPrefs userData = new UserPrefs();
            userData.WindowColor = "Yellow";
            userData.FontSize = 50;

            XmlSerializer formatter = new XmlSerializer(typeof(UserPrefs));
            using (Stream fStream = new FileStream("user.dat",
               FileMode.Create, FileAccess.Write, FileShare.None))
            {
                formatter.Serialize(fStream, userData);
            }
        }
    }


Список об'єктів

            List<UserPrefs> list = new List<UserPrefs>();

            UserPrefs userData = new UserPrefs();
            userData.WindowColor = "Yellow";
            userData.FontSize = 50;
            list.Add(userData);

            UserPrefs userData2 = new UserPrefs();
            userData2.WindowColor = "Blue";
            userData2.FontSize = 70;
            list.Add(userData2);

            XmlSerializer formatter = new XmlSerializer(typeof(List<UserPrefs>));
       
            using (Stream fStream = new FileStream("user.dat",
               FileMode.Create, FileAccess.Write, FileShare.None))
            {
                formatter.Serialize(fStream, list);
            }


Усі класи мають мати публічні змінні та конструктори за замовчанням!



            try
            {
                XmlSerializer deSerializer = new XmlSerializer(typeof(List<Car>));
                using (TextReader reader = new StreamReader("all_car.xml"))
                {
                    allCar = (List<Car>)deSerializer.Deserialize(reader);
                }
                foreach (Car cars in allCar)
                {
                    listBox1.Items.Add(cars);
                }
            }
            catch (IOException)
            {
                MessageBox.Show("Не вдалося знайти файл із раніше збереженими даними");
                allCar = new List<Car>();
            }