Esempio n. 1
0
        private static void JsonSerializationDemo()
        {
            Header("JSON сериализация");

            TrainJson train = new TrainJson{ Speed = 190.2, Length = 8, Travellers = new[] {"Иванов И.И.", "Петров П.П.", "Сидоров С.С."}};
            Comment("Объект до сериализации");
            train.Print();
            Console.WriteLine();

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

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

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

                reader.Close();
            }

            Pause();
        }