我正在使用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)。这根本不受支持还是我错过了什么?