IsolatedStorageSettings.ApplicationSettings不会存储以重新启动

时间:2012-02-16 09:20:17

标签: windows-phone-7 isolatedstorage application-settings windows-phone-7-emulator

我正在写一个WP7(Mango)应用程序。 我将值存储在WP7 IsolatedStorageSettings.ApplicationSettings中,然后我调用IsolatedStorageSettings.ApplicationSettings.Save();

如果我按回去,离开屏幕,然后我回来,我可以很好地读取数值。 但是,如果我在调试器中按重启(或者只是从模拟器重新启动),ApplicationSettings将抛出 KeyNotFoundException 就像它没有持久 ... 我还没有在设备上试过它,我现在还没有可用的。

我可能做错什么?

4 个答案:

答案 0 :(得分:7)

事实证明问题并非出现在模拟器中所有,所以每个人都认为这是“模拟器中的”设计“结果是错误的(但我无法撤消我的赞成他们被锁定了。)

问题在于我试图持久化不可序列化的类,并且wp7通过在下一个Save()丢弃所有设置来处理此问题。当我删除那个单独的Add()(或者更精确地用JSON.net序列化该对象(可以处理它)并保留json字符串时)我的所有问题都消失了。

仍然是wp7的荒谬行为。

答案 1 :(得分:1)

此行为在模拟器上是“按设计”。

我建议,下面是代码的步骤。 1.检查密钥是否可用 2.如果没有,则将默认值设置为它。

答案 2 :(得分:1)

检查问题:Automatic login process in Windows Phone 7.1 application

  1. 在模拟器上,在重新加载后,IsolatedStorage 不是持续存在,而且对于文件和应用程序设置都是如此。
  2. 您可以使用wp7 sdk中的Isolated Storage Explorer工具拍摄独立存储内容的快照,并在重启后恢复它:Click
  3. 在隔离存储 持久性的实际设备上不会出现此问题。

答案 3 :(得分:0)

我收到了同样的错误(错误发生是因为停止调试器密钥被删除后),我发布了一个问题:Automatic login process in Windows Phone 7.1 application。建议您使用网站设置而不是应用程序设置。还有一个选择:http://www.codeguru.com/csharp/.net/wp7/article.php/c19215/Using-Isolated-Storage-for-your-Windows-Phone-7-WP7-App.htm。希望它能解决你的问题。