字典的C#-JSON序列化

字典的C#-JSON序列化,c#,C#,我是C#development的新手 在我的项目中,我尝试将字典实例序列化到设置存储中,并使用以下代码保存该实例: private static Dictionary<string, Dictionary<int, string>> GetKeys() { Dictionary<string, Dictionary<int, string>> keys = null; try { JavaScriptSerializ

我是C#development的新手

在我的项目中,我尝试将
字典
实例序列化到
设置
存储中,并使用以下代码保存该实例:

private static Dictionary<string, Dictionary<int, string>> GetKeys()
{
    Dictionary<string, Dictionary<int, string>> keys = null;
    try {
        JavaScriptSerializer ser = new JavaScriptSerializer();
        keys = ser.Deserialize<Dictionary<string, Dictionary<int, string>>>(Settings.Default.keys);
    }
    catch (Exception e)
    {
        Debug.Print(e.Message);
    }
    return keys;
}

private static void SetKeys(Dictionary<string, Dictionary<int, string>> keys)
{
    try
    {
        JavaScriptSerializer ser = new JavaScriptSerializer();
        Settings.Default.keys = ser.Serialize(keys);
    }
    catch (Exception e)
    {
        Debug.Print(e.Message);
    }
}
private静态字典GetKeys()
{
字典键=空;
试一试{
JavaScriptSerializer ser=新的JavaScriptSerializer();
keys=ser.Deserialize(Settings.Default.keys);
}
捕获(例外e)
{
调试.打印(e.Message);
}
返回键;
}
专用静态无效设置键(字典键)
{
尝试
{
JavaScriptSerializer ser=新的JavaScriptSerializer();
Settings.Default.keys=ser.Serialize(键);
}
捕获(例外e)
{
调试.打印(e.Message);
}
}
当我尝试调用
SetKeys
方法时,就会出现问题。抛出
ThreadAbortException

mscorlib.dll中首次出现类型为“System.Threading.ThreadAbortException”的异常 评估需要临时运行线程。使用“监视”窗口执行评估

你知道我该如何解决我的错误吗

感谢您更好地使用,但是如果您想使用
JavaScriptSerializer

尝试:

或:


您可能想看看这个,序列化/反序列化词典始终是一个问题源。我建议放弃字典,创建自己的配置集合,因为这是一个键控集合,也是一个易于序列化/反序列化的集合。Json.NET解决了我的问题。谢谢你的帮助!
var json = new JavaScriptSerializer().Serialize(keys.ToDictionary(item => item.Key.ToString(), item => item.Value.ToString()));
string jsonString = serializer.Serialize((object)keys);