xoofx / SharpYaml

SharpYaml is a .NET library for YAML compatible with CoreCLR

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Yaml creation error

liuyl1992 opened this issue · comments

commented

image
result:
image

I have a similar issue. No clue how to resolve it, and it's seriously bothering me during development on my own project.

I've tracked this down to AnchorSerializer.cs. Disabling anchoring and aliases would resolve this issue, yet I cannot find any documentation on how to do this.

YamlSharp.Serializer.Settings.EmitAlias is set to 'true' by default. I thought setting it to 'false' would disable this behavior, but rather, it increased it. Now, every variable was given an anchor tag, due to the fact that aliases (but no anchors) were now disabled. @xoofx, is there really no way to outright disable outputting anchors when Serializer.Serialize(object) is called?

Issue #15 ("How do I get Serialize() to stop putting out anchor and reference labels?") was about this same thing, actually, and the response of setting 'SortKeyForMapping' and 'EmitAlias' both to false before serializing simply does not resolve this (at least not anymore). For now, switching to JSON over YAML seems like a good option due to readability concerns.

You have to use SerializerSettings and disable aliasing.

using System;
using SharpYaml.Serialization;

namespace SharpYaml.Tests
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            var settings = new SerializerSettings {EmitAlias = false};
            var serializer = new Serializer(settings);
            var tester = new Tester() { A = "this is a", B = "this is a"};
            var text = serializer.Serialize(tester);
            Console.WriteLine(text);
        }

        public struct Tester
        {
            public string A { get; set; }

            public string B { get; set; }
        }
    }
}