JsonConverter不用于某些类型的容器

时间:2012-10-22 13:57:36

标签: json.net deserialization converter

我有一个继承自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?

祝你好运

1 个答案:

答案 0 :(得分:0)

从转换器中删除where T : IDataBag并覆盖CanConvert并编写逻辑以检查您的类型并确认返回true或false。