Как сериализовать пользовательский класс с YamlDotNet
Я пытаюсь сериализовать пользовательский класс с библиотекой YamlDotNet.
Есть мой класс:
public class Person
{
string firstName;
string lastName;
public Person(string first, string last)
{
firstName = first;
lastName = last;
}
}
И вот как я попытался его сериализовать:
StreamWriter streamWriter = new StreamWriter("Test.txt");
Person person = new Person("toto", "titi");
Serializer serializer = new Serializer();
serializer.Serialize(streamWriter, person);
Но в моем выходном файле у меня есть только это: { }
Что я забыл сделать для сериализации моего класса?
заранее спасибо
1 ответ
Решение
Поведение YamlDotNet по умолчанию заключается в сериализации открытых свойств и игнорировании полей. Самое простое решение - заменить открытые поля автоматическими свойствами:
public class Person
{
public string FirstName { get; private set; }
public string LastName { get; private set; }
public Person(string first, string last)
{
FirstName = first;
LastName = last;
}
}
Вы можете относительно легко изменить поведение YamlDotNet для сериализации приватных полей, но я не рекомендую этого делать.