La maggior parte delle applicazioni Windows Phone dispone di una sezione dove permettere all'utente di configurare l'applicazione, cambiare comportamenti. Spesso, l'applicazione stessa necessita di memorizzare informazione di sessione.
Il modo più rapido per raggiungere questo obbiettivo è di sfruttare la classe IsolatedStorageSettings che, con un pattern su proprietà, può semplificare notevolmente il salvataggio di tutte queste informazioni. La classe è, di fatto, un dizionario, che permette di memorizzare, in base ad una chiave di tipo stringa, qualsiasi oggetto primitivo, come stringhe, interi, date e booleani, oppure tipi complessi, a patto che siano serializzabili con il DataContractSerializer.
Nello snippet seguente si propone la definizione di una proprietà per esporre un'impostazione e per poterla mettere in binding o farne accesso facilmente.
private const string myKey = "mykey"; public static string MyKey { get { string v; if (IsolatedStorageSettings.ApplicationSettings.TryGetValue(myKey, out v)) return v; return null; } set { IsolatedStorageSettings.ApplicationSettings[myKey] = value; } }
Grazie al metodo TryGetValue, si gestisce il valore di default, in modo da non incorrere in errori quando l'utente avvia per la prima volta l'applicazione o quando questa è stata aggiornata. Non è necessario fare nessun'altra operazione, perché il dizionario viene salvato e caricato automaticamente dal sistema allo startup e alla chiusura. Se si vuole essere sicuri di persistere i dati in un preciso momento è necessario richiamare IsolatedStorageSettings.ApplicationSettings.Save().
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire condizioni complesse in JavaScript
Gestire il breaking change di Entity Framework Core 7 con tabelle che usano identity e trigger
Utilizzare la libreria Benchmark.NET per misurare le performance
Abilitare automaticamente Dependabot in tutti i repository di una organizzazione su GitHub
Gestire tipi complessi in query string grazie a IParsable in ASP.NET Core 7.0
Creare un router per Single Page Application con l'evento navigate
Migrare un repository git da Azure DevOps a GitHub
Specificare il numero di parentesi graffe nella string interpolation in combinazione con i string literal in C#
Utilizzare l'attributo HTML inert per disabilitare gli eventi
Dependency Injection e custom validator in Blazor con .NET 7.0
Organizzare i moduli sfruttando CommonJS
Pubblicare la documentazione di un repository con GitHub Pages