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

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

   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>();

            }