在C#中解析yaml流时如何保留注释?

时间:2020-09-19 08:42:09

标签: c# yaml comments yamldotnet

我正在使用YamlDotNet读写Yaml。首先将yaml文件的内容加载到YamlStream中,然后处理和修改文档。处理完文档后,内容将写回到文件中。在此过程中,注释不会保留,在我的项目中保留注释至关重要。例如,

Yaml文件:

            users:
            - id: someid
              # comment that needs to be preserved
              emailAddress: something@some.com
              phone:

代码是

        var input = new StringReader(Document);
        var yaml = new YamlStream();
        yaml.Load(input);
        
        var document =
            (YamlMappingNode)yaml.Documents[0].RootNode;

        /* document is updated here */

        var serializer = new SerializerBuilder().Build();
        var updatedYaml = serializer.Serialize(document);

        Console.WriteLine(updatedYaml);

预期的输出是

            users:
            - id: someid
              # comment that needs to be preserved
              emailAddress: something@some.com
              phone:

但是注释不会保留在实际输出中。我已经看过关于thread的有关注释保留的内容,但是它讨论的是发出带有数据成员属性的注释。但是在我的场景中,我没有使用任何类对yaml进行反序列化/序列化。我只想在读取和写回时将其保留在Yaml中。是否可以使用YamlDotNet做到这一点?

0 个答案:

没有答案
相关问题