我正在尝试使用 JavaScriptSerializer 从 JSON 字符串反序列化以下类的实例:
public class Filter
{
public HashSet<int> DataSources { get; set; }
}
这是我正在尝试的代码:
Filter f = new Filter();
f.DataSources = new HashSet<int>(){1,2};
string json = (new JavaScriptSerializer()).Serialize(f);
var g= (new JavaScriptSerializer()).Deserialize<Filter>(json);
它出错并显示以下消息:
'System.Collections.Generic.List
1[System.Int32]' cannot be converted to type 'System.Collections.Generic.HashSet
1[System.Int32]' 类型的对象。
显然,序列化程序无法从 JSON 表示中区分列表和集合。解决方案是什么?
注意:由于工作上的限制,我宁愿避免使用外部库。