2015-07-02 26 views
0

元素是否有一個平坦的,這將告訴C#蒙戈BsonSerializer忽略沒有在POCO類存在的元素C#蒙戈BsonSerializer.Deserialize忽略不存在

例集合

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); 

第一項工作正常,第二項將拋出一個異常,所有者不存在。

回答

4

使用[BsonIgnoreExtraElements]對貓類屬性。
從屬性摘要:

指定當這個類是 反序列化多餘的元素應該被忽略。

0

也許你可以反序列化爲一個對象,並使用動態來接收它。

dynamic test = BsonSerializer.Deserialize<object>(result);

+0

我在想,但擔心會導致性能下降 – Chadit