2013-11-26 4 views
1

У меня есть MongoCollection<myObject>.deserialize унаследованный объект

Некоторые из «MyObject» в коллекции содержит другой объект (позволяет сказать «myObject2»), и некоторые из них содержит объект, унаследованный от «myObject2» («myInheritedObjet»)

Теперь я десериализации Элементы из коллекции, но я получаю сообщение об ошибке, потому что «myObject2» не имеет некоторых атрибутов «myInheritedObjet». произошло

ошибка при десериализации свойство "MyObject": 'Имя' Element не соответствует ни одному полю или свойство класса "MyObject"

Например:

MongoCollection<Person>

Person 
    string name; 
    Animal[] pets; 

Animal 
    string AType; 

Dog : Animal 
    string Name; 

Если у человека есть Собака, этот человек не может десериализоваться, потому что Тип животных не имеет «N AME».

Как это исправить? Спасибо.

ответ

1

Ok Я нашел это: deserializing polymorphic classes

Все, что мне нужно сделать, это отображение базового класса для подкласса с:

[BsonKnownTypes(typeof(subclass)] 
class BaseClass {...} 
Смежные вопросы