YamDocument 到文本表示以 3 个点结尾

Dra*_*ouf 5 .net c# yaml yamldotnet

当我做 :

var root = new YamlMappingNode();
var doc = new YamlDocument(root);
root.Add("one", "two");
var stream = new YamlStream(doc);
var buffer = new StringBuilder();
using (var writer = new StringWriter(buffer))
{
  stream.Save(writer, false);
  var t = buffer.ToString();
}
Run Code Online (Sandbox Code Playgroud)

我得到:

one: two
...
Run Code Online (Sandbox Code Playgroud)

为什么文件末尾有3个点?

spe*_*der 4

对于在单个流中流式传输多个 yaml 文档也是如此YamlStream,因此它会编码标记以指示文件结束 ( ---) 和流结束 ( ...)。如果您只序列化单个文档,您可能不需要这个。

相反,使用Serializer将节点写入 a (由 ( )StreamWriter回退):FileStream

var serializer = new Serializer(); //YamlDotNet.Serialization.Serializer
using (var fs = File.OpenWrite("some/path.yaml"))
using (var sw = new StreamWriter(fs))
{
    serializer.Serialize(sw, doc.RootNode);
}
Run Code Online (Sandbox Code Playgroud)