我正在尝试使用 yaml 发送二进制数据,即字节数组。根据 yaml 文档Yaml Binary Type,这是受支持的。在 Java 端,我使用 SnakeYaml,如果传递了 byte[] 的值,那么 yaml 会正确给出 !!binary。
YamlDotNet 中似乎“开箱即用”不支持此功能。下面的代码片段创建了一个整数值序列:
IDictionary<string, object> data = new Dictionary<string, object>();
const string value = ":| value: <XML> /n\n C:\\cat";
byte[] bytes = Encoding.UTF8.GetBytes(value);
data.Add(ValueKey, bytes);
// Turn the object representation into text
using (var output = new StringWriter())
{
var serializer = new Serializer();
serializer.Serialize(output, data);
return output.ToString();
}
输出如:
val:\r- 58\r- 124\r- 32\r- 118\r- 97\r- 108\r- 117\r- 101\r- 58\r- 32\r- 60\r- 88\r- 77\r- 76\r- 62\r- 32\r- 47\r- 110\r- 10\r- 32\r- 67\r- 58\r- 92\r- 99\r- 97\r- 116\r
但我想要更多类似的东西:
val: !!binary |-
OnwgdmFsdWU6IDxYTUw+IC9uCiBDOlxjYXQ=
任何人都可以推荐一个解决方法吗?