4

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

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

我可能做错了什么?

4

4 回答 4

7

事实证明,问题根本不在模拟器中,所以每个人都认为这是模拟器中的“设计使然”结果证明是错误的(但我无法撤消我的投票,因为它们被锁定了)。

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

尽管如此,wp7 的行为还是很荒谬。

于 2012-03-05T10:03:51.747 回答
1

这种行为是模拟器上的“设计使然”。

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

于 2012-02-16T09:36:50.230 回答
1

检查该问题:Windows Phone 7.1 应用程序中的自动登录过程

  1. 在模拟器上,IsolatedStorage在重新加载后不是持久的,这适用于文件和应用程序设置。
  2. 您可以使用 wp7 sdk 中的独立存储资源管理器工具对独立存储内容进行快照并在重启后恢复:单击
  3. 该问题不会发生在隔离存储持久存在的真实设备上。
于 2012-02-18T22:35:13.947 回答
0

我得到了同样的错误(发生错误是因为在您停止调试器后密钥被删除),我发布了一个关于此的问题:Windows Phone 7.1 应用程序中的自动登录过程。建议您使用站点设置而不是应用程序设置。另一种选择: http: //www.codeguru.com/csharp/.net/wp7/article.php/c19215/Using-Isolated-Storage-for-your-Windows-Phone-7-WP7-App.htm。希望它能解决你的问题。

于 2012-02-20T13:47:06.037 回答