我正在寻找一种自定义 YamlDotNet 序列化程序输出的干净方法。
我有以下 POCO:
public class MyClass{
public string Foo { get;set; }
public Dictionary<string, string> Bar { get;set; }
}
如果我像这样设置值
var class = new MyClass{ Foo = "bla" };
class.Bar["key1"] = "val1";
class.Bar["key2"] = "val2";
并将其序列化,然后我将得到结果:
Foo: bla
Bar:
key1: val1
key2: val2
但是,我需要得到的是
Foo: bla
key1: val1
key2: val2
我无法将 key1、key2 等添加为 MyClass 的属性,因为它们在运行时之前是未知的(值和键的数量)。有没有办法可以使用 YamlDotNet 做到这一点?
我考虑过使用反射将 MyClass 中的所有内容转换为 aDictionary<string, object>
但更喜欢更简洁的实现。
有什么方法可以控制这种程度的序列化?