反序列化继承的对象

时间:2013-11-26 13:46:26

标签: c# mongodb serialization bson

我有MongoCollection<myObject>

集合中的某些“myObject”包含另一个对象(比如说“myObject2”),其中一些包含一个继承自“myObject2”(“myInheritedObjet”)的对象

现在我想从集合中反序列化Items,但是我收到一个错误,因为“myObject2”没有“myInheritedObjet”的某些属性。

  

反序列化“myobject”属性时发生错误:元素   “名称”与“myobject”类的任何字段或属性都不匹配

例如:

MongoCollection<Person>

Person
    string name;
    Animal[] pets;

Animal
    string AType;

Dog : Animal
    string Name;

如果有人有狗,这个人不能反序列化,因为动物类型没有“名字”。

我该如何解决? 感谢。

1 个答案:

答案 0 :(得分:1)

好的,我发现了这个:deserializing polymorphic classes

我需要做的就是将基类映射到子类:

[BsonKnownTypes(typeof(subclass)]
class BaseClass {...}