Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
{ public class Person { // Открытое поле. public bool IsAlive = true; /// Закрытое поле. private int PersonAge = 21; // Открытое свойство/закрытые данные. private string _fName = string.Empty; public string FirstName { get { return _fName; } set { _fName = value; } } public override string ToString() => $"IsAlive:{IsAlive} FirstName:{FirstName} Age:{PersonAge} "; }}В заключение модифицируйте содержимое файла
Program.csusing System;using System.Collections.Generic;using System.IO;using System.Text.Json;using System.Text.Json.Serialization;using System.Xml;using System.Xml.Serialization;using SimpleSerialize;Console.WriteLine("***** Fun with Object Serialization *****n");// Создать объект JamesBondCar и установить состояние.JamesBondCar jbc = new(){ CanFly = true, CanSubmerge = false, TheRadio = new() { StationPresets = new() {89.3, 105.1, 97.1}, HasTweeters = true }};Person p = new(){ FirstName = "James", IsAlive = true};Итак, все готово для того, чтобы приступить к исследованию сериализации XML и JSON.
Сериализация и десериализация с помощью XmlSerializer
Пространство имен
System.XmlSystem.Xml.Serialization.XmlSerializerXmlSerializerУправление генерацией данных XML
Если у вас есть опыт работы с технологиями XML, то вы знаете, что часто важно гарантировать соответствие данных внутри документа XML набору правил, которые устанавливают действительность данных. Понятие действительного документа XML не имеет никакого отношения к синтаксической правильности элементов XML (вроде того, что все открывающие элементы должны иметь закрывающие элементы). Действительные документы отвечают согласованным правилам форматирования (например, поле
XПо умолчанию класс
XmlSerializerXmlSerializerSystem.Xml.Serialization
Разумеется, для управления тем, как
XmlSerializerSystem.Xml.SerializationНа заметку! Класс
XmlSerializerСериализация объектов с использованием XmlSerializer
Добавьте в свой файл
Program.csstatic void SaveAsXmlFormat<T>(T objGraph, string fileName){<b> // В конструкторе XmlSerializer должен быть объявлен тип.</b> XmlSerializer xmlFormat = new XmlSerializer(typeof(T)); using (Stream fStream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None)) { xmlFormat.Serialize(fStream, objGraph); }}Добавьте к операторам верхнего уровня такой код:
SaveAsXmlFormat(jbc, "CarData.xml");Console.WriteLine("=> Saved car in XML format!");SaveAsXmlFormat(p, "PersonData.xml");Console.WriteLine("=> Saved person in XML format!");Заглянув внутрь сгенерированного файла
CarData.xml