在YAMLDotNet中反序列化对象层次结构

时间:2017-02-16 03:36:12

标签: yamldotnet

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

0 个答案:

没有答案