Подтвердить что ты не робот

Как обычные люди должны сохранять настройки в приложении Windows Phone 8?

Я сейчас пишу приложение для Windows Phone 8, поэтому я могу захватить столь популярную 3-процентную долю на рынке, и у меня есть трудности с сохранением пользовательских настроек в приложении.

Я впервые столкнулся с этим блогом, в котором рассказывается об основах пространства имен Windows.Storage, которое предназначено именно для этого. Ура!

Однако, я думаю, автор никогда не запускал свой собственный код, так как в противном случае он знал бы, что второе вы вызываете ApplicationData.Current.LocalSettings, вы получите исключение NotImplementedException. К MSDN мы идем!

Хорошо, это совершенно ясно, что этот API не реализован на Windows Phone 8. Я пришел к такому выводу, когда он сказал: "Этот API не реализован и будет вызывать исключение, если вызвано". - Хорошо, что здорово.

Итак, возможно, есть и другие подобные API. После немного больше Googling, я наткнулся на этот блог. Он называется "Windows 8 Apps - должен знать трюки!". Это выглядит официально! Он охватывает всевозможные действительно интересные API-интерфейсы устойчивости, включая постоянное и временное хранилище, хранилище роуминга и т.д.

Но угадайте, что: RoamingFolder, RoamingSettings, TemporaryFolder, LocalSettings - Ни один из них не реализован на Windows Phone 8.

Выполняли ли эти несколько ключевые функции просто проскользнуть? Должен ли я создавать локальную базу данных SQL для хранения базовых параметров приложения или есть что-то простое, чего я не нахожу?

4b9b3361

Ответ 1

Ага! Выяснил это. Я выкопал документы 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;
}

Ответ 2

Несколько вариантов здесь....

  • LocalFolder поддерживается, чтобы вы могли сериализовать любое состояние, которое вы хотите там.
  • Ознакомьтесь с классом IsolatedStorageSettings, в частности ApplicationSettings собственность

Также это может предоставить немного больше контекста: Как сохранить и восстановить состояние приложения для Windows Phone