隔离存储不会取代新值?应用休息?

时间:2013-08-30 05:45:41

标签: c# windows-phone-8

我使用IsolatedStorage来保存用户的整数。要添加第一个整数,它可以正常工作。给定整数成功添加。

但是,在使用IsolatedStorage IsolatedStorageSettings.ApplicationSettings["Key"] = site;将另一个整数保存在同一个字符串上(以替换旧整数)时,App会中断。

这里是我的代码:

        int num = 0;
        if (int.TryParse(txtbox.Text, out num) && num > 0)
        {
            string site;
            site = num.ToString();
            IsolatedStorageSettings.ApplicationSettings.Add("Key", site);
            IsolatedStorageSettings.ApplicationSettings["Key"] = site;
            IsolatedStorageSettings.ApplicationSettings.Save();
            MessageBox.Show("Bookmark created successfully");
        }
        else
        {
            MessageBox.Show("TextBox is not supposed to be empty");
        }

1 个答案:

答案 0 :(得分:1)

你应该删除这一行:

IsolatedStorageSettings.ApplicationSettings.Add("Key", site);

如果您已经有一个名为Key的设置,该行将引发异常,as documented

  

<强>例外:
  ArgumentException - key已存在于词典中。

......而这一行:

IsolatedStorageSettings.ApplicationSettings["Key"] = site;

只需替换之前的任何值。

你应该退后一步,弄清楚为什么你不能自己发现这个:你说应用程序“中断” - 可能是一个异常被抛出,你应该确保你能够获得堆栈跟踪(和消息)任何异常。这应该确定问题所在。能够看到您的应用程序抛出的任何异常非常重要,否则诊断问题会非常困难。