У меня большая проблема с использованием изолированного хранилища WP7 и настроек приложения.В качестве основы я использовал код из 101 тома приложения для Windows Phone 7 Адама Натана.
У меня есть страница настроек, на которой можно изменять значения, и пока приложение все еще работает, они остаются активными, и все работает отлично,Однако, как только приложение закрывается на моем телефоне разработчика, они теряются, и приложение перезапускается с настройками по умолчанию.
Я понятия не имею, почему эти значения не сохраняются.Любая помощь будет высоко ценится.
Вот код, который я получил, из новой книги Адама Натана.Я отправил ему сообщение в твиттере, и он сказал, что это связано с типом данных, который не сериализуем.Я посмотрел на это, но я использую только значения double и bool.
public class Setting<T>
{
string name;
T value;
T defaultValue;
bool hasValue;
public Setting(string name, T defaultValue)
{
this.name = name;
this.defaultValue = defaultValue;
}
public T Value
{
get
{
//checked for cached value
if (!this.hasValue)
{
//try to get value from isolated storage
if (IsolatedStorageSettings.ApplicationSettings.TryGetValue(this.name, out this.value))
{
//not set yet
this.value = this.defaultValue;
IsolatedStorageSettings.ApplicationSettings[this.name] = this.value;
}
this.hasValue = true;
}
return this.value;
}
set
{
//save value to isolated storage
IsolatedStorageSettings.ApplicationSettings[this.name] = value;
this.value = value;
this.hasValue = true;
}
}
public T DefaultValue
{
get { return this.defaultValue; }
}
//clear cached value;
public void ForceRefresh()
{
this.hasValue = false;
}
}
Дальнейшее развитие:
Я получаю эту ошибку при выходе из приложения:
Сначаласлучайное исключение типа «System.IO.IsolatedStorage.IsolatedStorageException» произошло в mscorlib.dll
ОШИБКА НАЙДЕНА: Я идиот и пропустил один восклицательный знак!из части trygetvalue.