我正在使用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做到这一点?