首页 > 解决方案 > 如何使用 YamlDotNet 序列化对象树

问题描述

我有以下课程:

public class MenuItem
{
    public string Title { get; set; }

    public List<MenuItem> Items { get; set; }

    public MenuItem()
    {
        Items = new List<MenuItem>();
    }
}

如何正确序列化它?

阿德里安·塔尼塞鲁

我创建了一个 MenuItem 对象树,并想用 YamlDotNet 对其进行序列化,但结果出乎意料。

        MenuItem _root = new MenuItem() { Title = "Menu" };
        MenuItem childItem1 = new MenuItem() { Title = "Child item #1" };
        childItem1.Items.Add(new MenuItem() { Title = "Child item #1.1" });
        childItem1.Items.Add(new MenuItem() { Title = "Child item #1.2" });
        _root.Items.Add(childItem1);
        _root.Items.Add(new MenuItem() { Title = "Child item #2" });

       var serializer = new Serializer();

        string fileContent = serializer.Serialize(_root);

        using (StreamWriter writer = new StreamWriter("Menu.yaml"))
        {
            writer.Write(fileContent);
        }

结果是:


...

bu 我希望在 Yaml 中有一个 MenuItems 树。

标签: serializationtreeyamlyamldotnet

解决方案


推荐阅读