Json.net JsonConverter不用于某些类型的容器

Json.net JsonConverter不用于某些类型的容器,json.net,deserialization,converter,Json.net,Deserialization,Converter,我有一个从JsonConverter继承的类: JsonDataBagCreationConverter:JsonConverter其中T:IDataBag 我有一个实现IDataBag的班级公司 当我反序列化公司JsonDataBagCreationConverter的单个属性时,会像我预期的那样调用其ReadJson方法。 当我反序列化一个Company数组时,JsonDataBagCreationConverter会像我预期的那样调用其ReadJson方法。 它也适用于公司的通用列表 但是

我有一个从JsonConverter继承的类:
JsonDataBagCreationConverter:JsonConverter其中T:IDataBag

我有一个实现IDataBag的班级公司

当我反序列化公司JsonDataBagCreationConverter的单个属性时,会像我预期的那样调用其ReadJson方法。 当我反序列化一个Company数组时,JsonDataBagCreationConverter会像我预期的那样调用其ReadJson方法。 它也适用于公司的通用列表

但是对于公司的某些容器,json.net将无法识别列表的内容是Company类型的。因此,反序列化时不使用JsonDataBagCreationConverter

ie型集装箱 System.Collections.DictionaryEntry, System.Collections.ArrayList, System.Collections.Hashtable, System.Collections.SortedList 存储公司对象的

我知道这些容器是非通用的。 当内容为Idatabag(即公司)时,是否可以让(反)序列化程序查看这些容器的内容并使用JsonDataBagCreationConverter

致意


Jan

从转换器中移除
其中的T:IDataBag
,覆盖
CanConvert
,并在那里写入逻辑以检查您的类型,并相应地返回true或false