yamldotnet - 有没有办法抑制 YamlScalarNode 输出中的单引号?
问题描述
考虑这个简单的程序:
using System;
using YamlDotNet.RepresentationModel;
namespace TestYamlNode
{
class Program
{
static void Main(string[] args)
{
var scalarNode = new YamlScalarNode("!yada");
scalarNode.Style = YamlDotNet.Core.ScalarStyle.Plain;
var serializer = new YamlDotNet.Serialization.Serializer();
serializer.Serialize(Console.Out, scalarNode);
scalarNode = new YamlScalarNode("yada");
scalarNode.Style = YamlDotNet.Core.ScalarStyle.Plain;
serializer.Serialize(Console.Out, scalarNode);
}
}
}
该程序的输出为:
'!亚达'
雅达
有没有办法告诉 YamlDotNet 在输出中包含 !、{ 等字符时不要在输出中包含单引号?在某些情况下,我正在处理一个 AWS SAM 模板,该模板具有如下所示的属性:
uri: !Sub arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PetStorePetFunc.Arn}/invocations
解决方案
好的 - 所以在玩了一会儿之后,我意识到我问了一个愚蠢的问题。在我的用例中,我尝试使用以下形式生成输出:
uri: !Sub arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PetStorePetFunc.Arn}/invocations
看起来正确的方法是使用 YamlScalarNode 上的 Tag 属性:示例:
var node = new YamlScalarNode("arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PetStorePetFunc.Arn}/invocations");
node.Tag = "!Sub";
推荐阅读
- java - 在 PDFBox 中,是否可以在标记注释中添加工具提示(提示)?
- angular - 如何使用chartjs-plugin-labels(饼图)以角度2/8显示百分比(%)
- python - 按具有容差变化的列比较不同的熊猫数据框
- r - for循环创建作为另一个数据帧子集的数据帧
- python - 将 python 文件夹转换为包:`ModuleNotFoundError`
- laravel - 如何在 laravel 的外键查询中使用 where?
- python - Python PULP 排序结果
- c# - 取消订阅事件 - 取消订阅或为空?
- c - 通过 cmake 在 c 中链接外部 *.so 库
- selenium - 初始化 selenium webdriver 时如何解决 python-selenium 错误“连接被拒绝”?