C'è un modo per aggiungere un file di configurazione per le app WP7 come avviene per le app Windows e le app Web? Ho solo bisogno di un modo semplice per salvare alcune impostazioni, preferisco non creare il mio oggetto e serializzare/deserializzare un file xml. Non sembra che ci sia qualche modello di oggetto che posso aggiungere al mio progetto, quindi mi chiedo se qualcuno ha fatto questa o un'idea sul modo migliore?Windows phone 7 config/appSettings?
risposta
Trovato che è possibile farlo utilizzando la classe IsolatedStorageSettings.ApplicationSettings.
Ho scritto un semplice wrapper attorno alla classe IsolatedStorageSettings che aiuta a memorizzare e recuperare le impostazioni. Forse lo troverai utile.
using System.IO.IsolatedStorage;
public static class AppSettings
{
private static IsolatedStorageSettings Settings = System.IO.IsolatedStorage.IsolatedStorageSettings.ApplicationSettings;
public static void StoreSetting(string settingName, string value)
{
StoreSetting<string>(settingName, value);
}
public static void StoreSetting<TValue>(string settingName, TValue value)
{
if (!Settings.Contains(settingName))
Settings.Add(settingName, value);
else
Settings[settingName] = value;
// EDIT: if you don't call Save then WP7 will corrupt your memory!
Settings.Save();
}
public static bool TryGetSetting<TValue>(string settingName, out TValue value)
{
if (Settings.Contains(settingName))
{
value = (TValue)Settings[settingName];
return true;
}
value = default(TValue);
return false;
}
}
IsolatedStorageSettings.ApplicationSettings fa il lavoro se ho appena postato su alcune altre opzioni disponibili, tra cui:
- App.config w/blocco di configurazione cellulare
- dizionario App.xaml/risorsa
- T4 impostazioni generati classe
- eventi di generazione
- Protezione delle impostazioni di "privati"
Ottimo lavoro, grazie! – Daniel
Date un'occhiata a Northern Lights WP7 toolkit (in NuGet), in particolare ai PersistentVariables. Se hai intenzione di salvare le variabili come impostazioni, funzionerà, e Northern Lights ha molto di più.
Se non si chiama Settings.Save(); in StoreSetting, il tuo codice causa un'eccezione quando l'app WP7 termina –