2010-06-30 29 views
13

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

7

Trovato che è possibile farlo utilizzando la classe IsolatedStorageSettings.ApplicationSettings.

31

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; 
    } 
} 
+1

Se non si chiama Settings.Save(); in StoreSetting, il tuo codice causa un'eccezione quando l'app WP7 termina –

0

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ù.

http://northernlights.codeplex.com/documentation