如何将cloudformation模板yaml反序列化到C#字符串字典中?

如何将cloudformation模板yaml反序列化到C#字符串字典中?,c#,amazon-cloudformation,yamldotnet,C#,Amazon Cloudformation,Yamldotnet,我需要我的csharp应用程序读取一个cloudformation模板yaml文件(带有!Sub和其他函数),以便按原样将资源复制到另一个具有不同资源名称的cloudformation模板yaml中。YamlDotNet在点击时无法反序列化!子功能和其他功能。我是否应该使用另一个反序列化程序?我可以将软类型反序列化为字典中的字典(如Dictionary)吗?然后我就可以把整个小节读成一个字符串来复制,而不必解析它 示例cf.yaml: Description: my cloudformation

我需要我的csharp应用程序读取一个cloudformation模板yaml文件(带有!Sub和其他函数),以便按原样将资源复制到另一个具有不同资源名称的cloudformation模板yaml中。YamlDotNet在点击时无法反序列化!子功能和其他功能。我是否应该使用另一个反序列化程序?我可以将软类型反序列化为字典中的字典(如Dictionary)吗?然后我就可以把整个小节读成一个字符串来复制,而不必解析它

示例cf.yaml:

Description: my cloudformation example

Parameters:
  MyParameter:
    Description: What do you want?
    Type: String
    Default: 'hello'
  Environment:
    Description: Where do you want?
    Type: String
    Default: 'world'

Conditions:
  # Enable Permission Boundary
  IsBoundaryEnabled: !Equals [!Ref MyParameter, 'hello']

Resources:

  MyPolicies:
    Type: AWS::IAM::Policy
    Properties:
      PolicyName: My-Policies
      PolicyDocument:
        Statement:
        -
          Effect: Allow
          Action:
          - ssm:GetParameter
          Resource:
          - !Sub 'arn:aws:ssm:${AWS::Region}:${AWS::AccountId}:parameter/${Environment}.connectionString'
      Roles:
        - !Ref MyRole

  MyRole:
    Type: AWS::IAM::Role
    Properties:
      PermissionsBoundary: !If [ IsBoundaryEnabled, !Sub 'arn:aws:iam::${AWS::AccountId}:policy/My-Permission-Boundary', !Ref "AWS::NoValue"]
      AssumeRolePolicyDocument:
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - lambda.amazonaws.com
            Action:
              - sts:AssumeRole
      Path: /

因此,我只想将mycf[“资源”][“我的策略”]复制到另一个文件

如果您提供更多上下文,例如您尝试加载的文档示例,我可能可以帮助您。添加了一个示例,谢谢@你能找到解决办法吗?我也有同样的问题…我最终改用python和cfn_flip。如果需要使用c#,也许可以使用cfn_flip将yaml转换为json,然后加载json。这不是一个友好的设置,因为您会丢失评论和其他内容。如果您提供更多上下文,例如您尝试加载的文档示例,我可能可以帮助您。添加了一个示例,谢谢@你能找到解决办法吗?我也有同样的问题…我最终改用python和cfn_flip。如果需要使用c#,也许可以使用cfn_flip将yaml转换为json,然后加载json。这不是一个友好的设置,因为你会丢失评论和其他东西。