Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将YamlDocument序列化为yaml字符串_C#_.net_Yaml_Yamldotnet - Fatal编程技术网

C# 如何将YamlDocument序列化为yaml字符串

C# 如何将YamlDocument序列化为yaml字符串,c#,.net,yaml,yamldotnet,C#,.net,Yaml,Yamldotnet,我使用YamlDotnet,我有一份YamlDocument。现在我想将其转换为内存中的yaml文本表示,但我不知道如何实现 var yaml = new YamlDocument(new YamlMappingNode()); yaml.Add("one", "other") var text = yaml.ToYamlText() 我应该在文本中输入如下内容: one: "other" 我尝试了zith Serializer类,但没有成功,所以我在源代码的单元测试中找到了解决方案: va

我使用YamlDotnet,我有一份YamlDocument。现在我想将其转换为内存中的yaml文本表示,但我不知道如何实现

var yaml = new YamlDocument(new YamlMappingNode());
yaml.Add("one", "other")
var text = yaml.ToYamlText()
我应该在文本中输入如下内容:

one: "other"

我尝试了zith Serializer类,但没有成功,所以我在源代码的单元测试中找到了解决方案:

var yaml = new YamlDocument(new YamlMappingNode());
yaml.Add("one", "other");
var yamlStream = new YamlStream(yaml);
var buffer = new StringBuilder();
using (var writer = new StringWriter(buffer))
{
    yamlStream.Save(writer);
    yamlText = writer.ToString();
}

无论如何,我现在有另一个问题,我需要所有的值都用双引号括起来。在另一个应用程序中,我使用了一个QuotesUroundingEventEmitter:ChainedEventEmitter和一个对象图selrialization。但是使用yamlStream.Save()我不知道如何实现这个机制

而不是添加一个字符串,而是添加一个
YamlScalarNode
并设置它的样式属性:
mapping.add(“one”,新的YamlScalarNode(“other”){Style=ScalarStyle.DoubleQuoted})。这里有一个完全有效的例子——是的,我终于做到了。非常感谢你的帮助answer@AntoineAubry快速提问,当我使用YamlStream.Save时,我得到了一个奇怪的随机字符串作为输出结果,该字符串在键之前或之后,比如:&1887939252。知道为什么吗?好吧,我又找到了原因。需要传递false作为Save…
YamlDocument
的第二个参数似乎没有添加方法。有什么变化吗?