如何使用YamlDotNet序列化自定义类

时间:2015-02-11 11:53:17

标签: 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 个答案:

答案 0 :(得分: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的行为以相对容易地序列化私有字段,但我不建议这样做。