Newtonsoft JSON десериализовать с подклассом коллекции - PullRequest
0 голосов
/ 01 марта 2019

У меня есть серия классов 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 , это может быть просто пользовательский конвертер, но я просто не понимаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...