是否有一个单位会告诉C#Mongo BsonSerializer忽略poco类中不存在的元素
示例集合
Animal {"Type" : "Cat", "Skill" : "Jump"}
Animal {"Type" : "Dog", "Skill" : "Bark", "Owner" : "Jimmy"}
如果猫C#类只有
public string Type {get;set;}
public string Skill {get;set;}
当我尝试执行以下
时 var test = BsonSerializer.Deserialize<Animal>(result);
第一项工作正常,第二项将抛出所有者不存在的例外。
答案 0 :(得分:7)
在Cat类上使用 [BsonIgnoreExtraElements] 属性。
来自属性摘要:
指定在此类时是否应忽略额外元素 反序列化。
答案 1 :(得分:0)
也许您可以反序列化为对象,并使用动态来接收它。
dynamic test = BsonSerializer.Deserialize<object>(result);
答案 2 :(得分:0)
或者您可以使用Conventional一次对所有类型执行
var conventionPack = new ConventionPack { new IgnoreExtraElementsConvention(true) };
ConventionRegistry.Register("IgnoreExtraElements", conventionPack, _ => true);