Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Mongo BsonSerializer。反序列化忽略不存在的元素_C#_Mongodb - Fatal编程技术网

C#Mongo BsonSerializer。反序列化忽略不存在的元素

C#Mongo BsonSerializer。反序列化忽略不存在的元素,c#,mongodb,C#,Mongodb,是否有一个平面可以告诉C#Mongo BsonSerializer忽略poco类中不存在的元素 示例集合 Animal {"Type" : "Cat", "Skill" : "Jump"} Animal {"Type" : "Dog", "Skill" : "Bark", "Owner" : "Jimmy"} 如果cat C#类只有 public string Type {get;set;} public string Skill {get;set;} 当我尝试执行以下操作时 var te

是否有一个平面可以告诉C#Mongo BsonSerializer忽略poco类中不存在的元素

示例集合

Animal {"Type" : "Cat", "Skill" : "Jump"}
Animal {"Type" : "Dog", "Skill" : "Bark", "Owner" : "Jimmy"}
如果cat C#类只有

public string Type {get;set;}
public string Skill {get;set;}
当我尝试执行以下操作时

 var test = BsonSerializer.Deserialize<Animal>(result);
var test=BsonSerializer.反序列化(结果);

第一项可以正常工作,第二项将抛出所有者不存在的异常。

也许您可以将其反序列化为对象,并使用dynamic接收它


dynamic test=BsonSerializer.Deserialize(结果)

在Cat类上使用[BsonIgnoreExtraElements]属性。
从属性摘要:

指定在创建此类时是否应忽略额外的元素 反序列化


或者您可以使用约定一次对所有类型执行此操作

var conventionPack=new conventionPack{new ignoreextracelements转换(true)};
Register(“ignoreextralelements”,conventionPack,=>true);

我也这么想,但担心这会影响性能