Сохранение и загрузка параметров в приложении UWP

В этом разделе рассматриваются сведения о начале загрузки и сохранении параметров в приложении Universal Windows Platform (UWP). Вводятся основные API, а ссылки предоставляются для получения дополнительных сведений.

Используйте параметры, чтобы запоминать настраиваемые пользователем аспекты приложения. Например, читатель новостей может использовать параметры приложения для сохранения источников новостей для отображения и шрифта, используемого для чтения статей.

Мы рассмотрим код для сохранения и загрузки параметров приложения.

Что нужно знать

Используйте параметры приложения для хранения данных конфигурации, таких как предпочтения пользователя и состояние приложения.

Следующие типы данных можно использовать с параметрами: целые числа, двойные, с плавающей запятой, символы, строки, точки, dateTimes и многое другое. Можно также хранить экземпляры класса ApplicationDataCompositeValue, который полезен при наличии нескольких параметров, которые следует рассматривать как единицу. Например, имя шрифта и размер точки для отображения текста в области чтения приложения следует сохранить или восстановить в виде одной единицы. Это позволяет предотвратить синхронизацию одного параметра с другим из-за параллельного доступа, например между основной программой и фоновой задачей.

Ниже приведены основные API, которые необходимо знать о сохранении или загрузке параметров приложения:

  • Windows. Storage.ApplicationData.Current.LocalSettings получает контейнер параметров приложения из локального хранилища данных приложения. Параметры, хранящиеся здесь, хранятся на устройстве и надежно сохраняются с помощью обновлений приложения.
  • Windows. Storage.ApplicationData.Current.RoamingSettings получает контейнер параметров приложения из перемещаемого хранилища данных приложения. Параметры, хранящиеся здесь, больше не перемещались (как Windows 11), но хранилище параметров по-прежнему доступно. Рекомендуемая замена для RoamingSettings — Служба приложений Azure. Служба приложений Azure широко поддерживается, хорошо документирована, надежна и поддерживает кроссплатформенные и кросс-экосистемные сценарии, такие как iOS, Android и Интернет.
  • Windows. Storage.ApplicationDataContainer — это контейнер, представляющий параметры приложения в виде пар "ключ-значение". Используйте этот класс для создания и извлечения значений параметров.
  • Windows. Storage.ApplicationDataCompositeValue представляет несколько параметров приложения, которые следует сериализовать как единицу. Это полезно, если один параметр не должен обновляться независимо от другого.

Это важно

RoamingSettings может не сохраняться после обновлений приложений из Microsoft Store. Для параметров, которые должны сохраняться после обновления приложения, используйте вместо этого LocalSettings.

Сохранение параметров приложения

В этом руководстве мы сосредоточимся на двух простых сценариях: сохранении и загрузке простого параметра приложения, а также сохранении и загрузке составного параметра шрифта или размера шрифта.

ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

// Save a setting locally on the device
localSettings.Values["test setting"] = "a device specific setting";

// Save a composite setting locally on the device
Windows.Storage.ApplicationDataCompositeValue composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["Font"] = "Calibri";
composite["FontSize"] = 11;
localSettings.Values["FontInfo"] = composite;

Сначала получите ApplicationDataContainer для локального хранилища данных настроек с Windows.Storage.ApplicationData.Current.LocalSettings, а затем сохраните параметр. Пары ключ-значение, которые вы назначаете этому экземпляру, сохраняются в локальном хранилище параметров устройства.

В приведенном выше фрагменте кода ApplicationDataCompositeValue хранит несколько пар "ключ-значение". Составные значения полезны при наличии нескольких параметров, которые не должны синхронизироваться друг с другом. При сохранении ApplicationDataCompositeValueзначения сохраняются и загружаются как единое целое, то есть атомарно. Таким образом связанные параметры не выйдут из синхронизации.

Загрузка параметров приложения

ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

// load a setting that is local to the device
String localValue = localSettings.Values["test setting"] as string;

// load a composite setting
Windows.Storage.ApplicationDataCompositeValue composite = (ApplicationDataCompositeValue)localSettings.Values["FontInfo"];
if (composite != null)
{
    String fontName = composite["Font"] as string;
    int fontSize = (int)composite["FontSize"];
}

Загрузите параметр, сначала получив экземпляр ApplicationDataContainer для локального хранилища параметров с Windows.Storage.ApplicationData.Current.LocalSettings. Затем используйте его для получения пар "ключ-значение". Если данные отсутствуют, вы получите пустой объект. В C# это означает, что localValue будет null, если параметр не существует.

Загрузите составной параметр, следуя аналогичному шаблону. Получите пары ключ/значение из локального хранилища данных настроек. Если данные отсутствуют, вы получите значение NULL ApplicationDataContainer. Вот почему в приведенном выше примере кода присутствует проверка на if (composite != null).

Полезные API и документы

Ниже приведены краткие сведения об API и другой полезной документации, которые помогут вам приступить к сохранению и загрузке параметров приложения.

Полезные API

API (Интерфейс программирования приложений) Описание
ApplicationData.LocalSettings Возвращает контейнер параметров приложения из локального хранилища данных приложения.
ApplicationData.RoamingSettings Возвращает контейнер параметров приложения из перемещаемого хранилища данных приложения.
Контейнер данных приложения Контейнер для параметров приложения, который поддерживает создание, удаление, перечисление и обход иерархии контейнеров.
Windows.UI.ApplicationSettings пространство имен Предоставляет классы, которые будут использоваться для определения параметров приложения, отображаемых в области параметров оболочки Windows.

Полезные документы

Тема Описание
Рекомендации по параметрам приложения Описывает рекомендации по созданию и отображению параметров приложения.
Хранение и извлечение настроек и других данных приложения Пошаговое руководство по сохранению и получению параметров.

Полезные примеры кода

Пример кода Описание
пример данных приложения Сценарии 2-4 сосредоточены на настройках