19

我正在编写一个 Windows Phone 8 应用程序,因此我可以占领如此抢手的 3% 市场份额,并且很难在应用程序中保留用户设置。

我第一次看到这个博客,它介绍了 Windows.Storage 命名空间的基础知识,它旨在完成这类事情。耶!

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

好吧,这很清楚地表明这个 API 没有在 Windows Phone 8 上实现。当它说“这个 API 没有实现,如果调用会抛出异常”时,我得出了这个结论。- 那太好了。

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

但你猜怎么着:RoamingFolder, RoamingSettings, TemporaryFolder, LocalSettings- Windows Phone 8 上都没有实现。

实现这些有点关键的功能只是让他们忘记了吗?我应该创建一个本地 SQL 数据库来存储基本的应用程序设置,还是有一些我没有找到的简单的东西?

4

2 回答 2

20

啊哈!想通了。我挖掘了 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<String>("SessionTicket", out ticket))
   {
      return ticket;
   }

   return null;
}
于 2012-11-26T05:17:55.717 回答
3

这里有几个选择......

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

此外,这可能会提供更多上下文:How to preserve and restore app state for Windows Phone

于 2012-11-26T05:22:35.927 回答