Beispiel #1
0
        private static void XmlSerializationDemo()
        {
            Header("XML сериализация");

            TrainXml train = new TrainXml(190.2, 8, "Иванов И.И.", "Петров П.П.", "Сидоров С.С.");
            Comment("Объект до сериализации");
            train.Print();
            Console.WriteLine();

            using (MemoryStream memoryStream = new MemoryStream())
            {
                // Выполняем сериализацию в поток в памяти
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(TrainXml));
                xmlSerializer.Serialize(memoryStream, train);

                // Печатаем результат на экран
                memoryStream.Position = 0;
                StreamReader reader = new StreamReader(memoryStream);
                string xml = reader.ReadToEnd();
                Comment("Результат XML сериализации");
                Console.WriteLine(xml);
                Console.WriteLine();
                memoryStream.Position = 0;

                // Выполняем десериализацию
                TrainXml trainCopy = (TrainXml)xmlSerializer.Deserialize(memoryStream);
                Comment("Копия объекта после сериализации.");
                trainCopy.Print();
                Console.WriteLine("\r\nReferenceEquals(train, trainCopy)={0}", ReferenceEquals(train, trainCopy));

                reader.Close();
            }

            Pause();
        }