0

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

4

0 回答 0