普通人应该如何在Windows Phone 8应用程序中保留设置?

我正在编写Windows Phone 8应用程序,因此我可以捕获3%的抢占市场份额,并且很难在应用程序中持久保存用户设置。

我首先浏览了这个博客 ,其中介绍了Windows.Storage命名空间的基础知识,该命名空间旨在完成此类操作。 好极了!

但是,我想作者从未真正运行过他自己的代码,否则他会知道第二个你调用ApplicationData.Current.LocalSettings ,你会得到一个NotImplementedExceptionexception。 我们去的MSDN!

好吧,这很清楚,这个API没有在Windows Phone 8上实现。我得出这个结论时说:“这个API没有实现,如果被调用会抛出exception。” – 那很好。

所以,也许有一些其他类似的API。 经过一番谷歌搜索,我发现了这个博客 。 它被称为“Windows 8应用程序 – 必须知道技巧!”。 这看起来很官方! 它涵盖了各种非常酷的持久性API,包括永久和瞬态存储,漫游存储等。

但猜猜是什么: RoamingFolderRoamingSettingsTemporaryFolderLocalSettings – 它们都没有在Windows Phone 8上实现。

实现这些有点关键的function只是让他们失去理智吗? 我应该创建一个本地SQL数据库来存储基本的应用程序设置,还是有一些简单的我找不到?

啊哈! 想出这个。 我挖出了Windows Phone 7 API文档,遗留API实际上仍然适用于Windows Phone 8。

 public static void Session_PersistSession(string ticket) { if (IsolatedStorageSettings.ApplicationSettings.Contains("SessionTicket")) { IsolatedStorageSettings.ApplicationSettings["SessionTicket"] = ticket; } else { IsolatedStorageSettings.ApplicationSettings.Add("SessionTicket", ticket); } IsolatedStorageSettings.ApplicationSettings.Save(); } public static string Session_LoadSession() { string ticket; if (IsolatedStorageSettings.ApplicationSettings.TryGetValue("SessionTicket", out ticket)) { return ticket; } return null; } 

这里有两个选择……

  1. 支持LocalFolder ,因此您可以将所需的任何状态序列化到那里的文件。
  2. 查看IsolatedStorageSettings类,特别是ApplicationSettings属性

此外,这可能会提供更多上下文: 如何保留和恢复Windows Phone的应用程序状态