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

Mik*_*sen 19 c# windows-8 windows-phone-8

我正在编写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数据库来存储基本的应用程序设置,还是有一些简单的我找不到?

Mik*_*sen 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;
}
Run Code Online (Sandbox Code Playgroud)

  • 他们用"统一"的WinRT风格API交换了这个好东西......哦等等! (6认同)