У меня есть инструмент с несколькими аксессуарами, которые можно прикреплять и снимать. Каждый аксессуар имеет свои настройки, и некоторые из этих настроек изменятся при повторной калибровке аксессуара.
Я хочу сохранить данные настроек для аксессуаров в виде документов в одном файле YAML с помощью YamlDotNet. Файл настроек будет обновляться при повторной калибровке аксессуара. Я нашел много сообщений о десериализации нескольких документов в одном файле, но ничего о сериализации нескольких документов в один файл (я новичок в YamlDotNet. Можете ли вы сказать?). В частности, как получить разделитель документов --- и индикатор конечного документа ... в файл?
Для иллюстрации приведу пример кода. Во-первых, класс для хранения настроек аксессуара:
public class Accessory
{
public string AccessoryName { get; set; }
public float CalibrationConstant1 { get; set; }
public float CalibrationConstant2 { get; set; }
public DateTime CalibrationDate { get; set; }
}
и список для хранения нескольких аксессуаров (может быть от одного до десяти из них):
public class AccessoryList
{
public List<Accessory> accessory;
public AccessoryList()
{
accessory = new List<Accessory>();
}
}
Моя попытка сериализации настроек:
ISerializer serializer = new SerializerBuilder().EmitDefaults().Build();
string file = Application.StartupPath + @"\Accessories.yml";
using (StreamWriter writer = File.CreateText(file))
foreach (Accessory accessory in AccessoryList.accessory)
{
serializer.Serialize(writer, accessory);
}
Итак, допустим, у нас есть два аксессуара. Получившийся файл .yml будет выглядеть так:
AccessoryName: Gargleblaster Pan-Galactic
CalibrationConstant1: 3.1415927
CalibrationConstant2: 2.718
CalibrationDate: 2018-11-13T12:33:55.9900338-05:00
AccessoryName: Phaser Set To Stun
CalibrationConstant1: 1.234321
CalibrationConstant2: 1.618
CalibrationDate: 2018-11-10T01:23:37.1453278-05:00
Как и ожидалось, никаких признаков --- или ... и когда я десериализирую файл, я получаю только данные второго аксессуара, что явно указывает на то, что мне нужно получить эти последовательности там. Я пытался писать строки в кавычках, но в файле появилось следующее: барабанная дробь, пожалуйста, строки в кавычках.
Любая помощь будет принята с благодарностью! Иногда самые очевидные вещи труднее всего увидеть новичку.