我正在使用 YamlDotNet,它运行良好。不过,我有一个关于序列化对象树的快速问题。例如,我有
class A {
[YamlMember(Alias = "p1")]
public string P1 { get; set; }
}
然后我想像这样从 A 继承:
class B : A {
[YamlMember(Alias = "p2")]
public string P2 { get; set; }
}
最后,我创建了一个这样的文档对象:
class D {
[YamlMember(Alias = "a")]
public A InputA { get; set; }
[YamlMember(Alias = "b")]
public B InputB { get; set; }
}
我反序列化了以下 Yaml:
a:
p1: foo
b:
p1: foo
p2: bar
使用以下代码:
var ds = new Deserializer();
var d = ds.Deserialize<D>(reader);
令人惊讶的是,我发现:
d.InputB.P1 == null
这在 JSON 中可以正常工作(尽管我只在 Java 中使用过 Jackson)。这根本不支持还是我错过了什么?