Yaml creation error
liuyl1992 opened this issue · comments
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; }
}
}
}