var presets = string.Join(",",
StationPresets.Select(i => i.ToString()).ToList());
return $"HasTweeters:{HasTweeters}
HasSubWoofers:{HasSubWoofers} Station
Presets:{presets}"; }
}
}
Добавьте еще один файл класса по имени Car.cs
using System;
using System.Text.Json.Serialization;
using System.Xml;
using System.Xml.Serialization;
namespace SimpleSerialize
{
public class Car
{
public Radio TheRadio = new Radio();
public bool IsHatchBack;
public override string ToString()
=> $"IsHatchback:{IsHatchBack} Radio:{TheRadio.ToString()}";
}
}
Затем добавьте очередной файл класса по имени JamesBondCar.cs
using System;
using System.Text.Json.Serialization;
using System.Xml;
using System.Xml.Serialization;
namespace SimpleSerialize
{
public class JamesBondCar : Car
{
public bool CanFly;
public bool CanSubmerge;
public override string ToString()
=> $"CanFly:{CanFly}, CanSubmerge:{CanSubmerge} {base.ToString()}";
}
}
Ниже показан код финального файла класса Person.cs
using System;
using System.Text.Json.Serialization;
using System.Xml;
using System.Xml.Serialization;
namespace SimpleSerialize
{
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.cs
using 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.Xml
System.Xml.Serialization.XmlSerializer. Этот форматер можно применять для сохранения XmlSerializer требует объявления типа, который будет сериализироваться (или десериализироваться).Управление генерацией данных XML