Проделал некоторые тесты в приложении Universal Windows и обнаружил, что каждое значение свойства не должно превышать 4095 байт. Таким образом, следующий код исправит его:
/// <summary>
/// Application settings
/// Limit to 200*4095
/// </summary>
private const string SET_STR = "SETTINGS";
private const int CHUNK_SIZE = 4095;
static private ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
static private string AppSettings {
get {
string set = "";
for (int i = 0;i < 200;i++) {
string s = (string)localSettings.Values[SET_STR + i];
if (s != null) {
set += s;
} else {
break;
}
}
return set;
}
set {
for (int i = 0;i < 200;i++) {
localSettings.Values[SET_STR + i] = null;
}
for (int i = 0;i * CHUNK_SIZE < value.Length;i++) {
if (value.Length > i * CHUNK_SIZE) {
int len = (i + 1) * CHUNK_SIZE > value.Length ? value.Length % CHUNK_SIZE : CHUNK_SIZE;
localSettings.Values[SET_STR + i] = value.Substring(i * CHUNK_SIZE, len);
}
}
}
}
Из-за быстрого google он, похоже, связан с хранением вещей в локальных настройках. Вы очень ограничены в пространстве в локальных настройках, и если вы превысите это пространство, вам нужно будет сериализовать настройки в файл в изолированном хранилище. – pstrjds
У нас нет настроек приложения, которые могут вызвать тревогу, всю кобылу либо числа, либо простые строки, ни JSON, ни XML, ни какие-либо сложные или сложные значения. – user1744147
Я не думаю, что это важно, сложны они или нет. Это объем не сложность. Вы должны убедиться, что настройки не являются проблемой, поскольку, поскольку в googling исключение вы получаете, это, казалось, самый общий результат, вызванный слишком большими настройками. Решение - сохранить настройки в файле в изолированном хранилище. – pstrjds