我有一个继承自JsonConverter的类:
JsonDataBagCreationConverter<T> : JsonConverter where T : IDataBag
我有一个实施IDataBag的类公司
当我反序列化公司的单一属性时,JsonDataBagCreationConverter会按照我的预期调用其ReadJson方法。 当我反序列化公司的数组时,JsonDataBagCreationConverter按照我的预期调用了ReadJson方法。 它也适用于公司的通用列表。
但对于公司的某些容器,json.net不会识别该列表的内容属于公司类型。因此,在反序列化时不使用JsonDataBagCreationConverter。
即类型的容器 System.Collections.DictionaryEntry, System.Collections.ArrayList, System.Collections.Hashtable, System.Collections.SortedList 存储公司对象。
我知道这些容器是非通用的。 是否可以使(de-)序列化程序查看这些容器的内容,并在内容为Idatabag(即公司)时使用JsonDataBagCreationConverter?
祝你好运
扬
答案 0 :(得分:0)
从转换器中删除where T : IDataBag
并覆盖CanConvert
并编写逻辑以检查您的类型并确认返回true或false。