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

У меня проблема с настройками сохранения и загрузки в универсальных приложениях. Я набираю этот код:

enter class Setting
{
    public static Kolor Read()
    {
        var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

        byte _red = (byte)localSettings.Values["R"];
        byte _green = (byte)localSettings.Values["G"];
        byte _blue = (byte)localSettings.Values["B"];

        return new Kolor(_red, _green, _blue);
    }

    public static void Save(Kolor kolor)
    {
        var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
        localSettings.Values["R"] = kolor.R;
        localSettings.Values["G"] = kolor.G;
        localSettings.Values["B"] = kolor.B;
    }
}

Когда я пытаюсь запустить приложения, отладчик показывает мне NullReferenceException в:

enter byte _red = (byte)localSettings.Values["R"];

Кто-то может мне помочь?

1 ответ

Я думаю, что ваша проблема исходит от значения, которое не существует в LocalSettings, так что сначала проверьте, что он существует.

public static Kolor Read()
{
    byte _red = GetByte("R");
    byte _green = GetByte("G");
    byte _blue = GetByte("B");

    return new Kolor(_red, _green, _blue);
}

private static byte GetByte(string key)
{
     if (!ApplicationData.Current.LocalSettings.Values.ContainsKey(key))
     {
         return default(byte);
     }
     return (byte)(ApplicationData.Current.LocalSettings.Values[key]);
}
Другие вопросы по тегам