当 YAML 文档具有不在类型中的字段时,YamlDotNet 反序列化抛出异常

cre*_*rad 4 c# yamldotnet

YamlDotNet 是否支持反序列化文档,其中文档中的字段未映射到结果对象中的字段?例如:

给定一个类型:

public class Foo {
    public string AField { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果我在以下文档上使用 YamlDotNet 的反序列化,则会生成异常:

Foo:
  AField: This is a test
  NotFoundField: This field is not supported yet
Run Code Online (Sandbox Code Playgroud)

查看 YAML 规范,应该允许忽略不匹配的字段。查看 YamlDotNet 代码,似乎假定文档中的所有字段都将映射到结果对象中。

是否有一种现有的方法可以使解析“允许”,或者我是否需要修改 YamDotNet 以允许这样做?

Ant*_*bry 5

反序列化器的当前行为是假设每个键都映射到一个属性。不过,实现您需要的行为应该不难。

现在有一个标志来配置此行为:https : //github.com/aaubry/YamlDotNet/pull/88