c# - 在 C# 中解析 yaml 流时如何保留注释?
问题描述
我正在使用 YamlDotNet 来读写 yamls。首先将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:
但实际输出中不会保留注释。我看过这个关于评论保存的线程,但它谈到了使用数据成员属性发出评论。但在我的场景中,我没有使用任何类来反序列化/序列化 yaml。我只想在阅读和写回时将现有评论保留在 yaml 中。是否可以使用 YamlDotNet 做到这一点?
解决方案
推荐阅读
- vb.net - ContextSwitchDeadlock 异常
- sql - SQL 联合 2 表与一个表的联合,其中一个表的列为空
- sql - 如何根据 Rails 中的关联模型设置默认值?
- php - 无法在核心 php 中使用 MD5 加密密码登录
- python - Dataframe to_parquet:parquet列顺序会影响文件大小吗?
- javascript - 将鼠标悬停在独立的 html 表格行上时,在散景图中渲染 BoxAnnotation
- sql - 甲骨文 1 = 意义
- amazon-web-services - WSO2 Identity Server - 使用 AWS SES 发送租户特定的电子邮件
- regex - 如何使用正则表达式指出段落中的密码字段
- javascript - 如何创建全屏覆盖搜索栏 - reactjs