我有一系列的类MyConcreteClass : MyBaseClass
和一系列的集合类MyConcreteCollection : MyBaseCollection
。
最有趣的地方是
public abstract class MyBaseCollection
{
public List<MyBaseClass> MyItems :get; set;}
}
它可以很好地进行序列化,并且MyItems中的对象确实显示为正确的项目(在设置{ TypeNameHandling = TypeNameHandling.All };
的JSON中查找
我的问题是我要反序列化时-显然我们无法创建List<MyBaseClass>
的对象(很抽象)-我需要反序列化为List<MyConcreteClass>
好消息? List<MyConcreteClass>
对于每种MyConcreteCollection
都是相同的,又称
MyFirstCollectionType: MyBaseCollection
MyItems将始终为FistConcreteType : MyBaseClass
类型,而MySecondCollectionType: MyBaseCollection
将始终为SecondConcreteType : MyBaseClass
类型
我认为可能只是自定义转换器,但我不明白。