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