У меня есть серия классов MyConcreteClass : MyBaseClass
и серия коллекционных классов MyConcreteCollection : MyBaseCollection
.
Где самое интересное, что
public abstract class MyBaseCollection
{
public List<MyBaseClass> MyItems :get; set;}
}
Сериализуется отлично, и объектывнутри MyItems действительно отображаются как правильные элементы (смотрите в JSON с { TypeNameHandling = TypeNameHandling.All };
set
Моя проблема, когда я иду на десериализацию - очевидно, мы не можем создать объект List<MyBaseClass>
(это абстрактный) - Мне нужно десериализовать до List<MyConcreteClass>
Хорошие новости? List<MyConcreteClass>
ВСЕГДА одинакова для каждого типа MyConcreteCollection
, иначе
MyFirstCollectionType: MyBaseCollection
MyItems всегда будет иметь тип FistConcreteType : MyBaseClass
и MySecondCollectionType: MyBaseCollection
всегда будет иметь тип SecondConcreteType : MyBaseClass
I THINK , это может быть просто пользовательский конвертер, но я просто не понимаю.