- How can be handled configuration values of an application, allowing the user to possibly change the default values here defined?
Suppose you have defined in the App.config file some parameters assigning a predefined default value for each:<configuration> <appSettings> <add key="LoginType" value="DAILY" /> <add key="MergeAudio" value="TRUE" /> .... </appSettings> </configuration>
Then you can define, for example in a Utility class, the following method: it tries to read the key from the IsolatedStorage;
if it failes, it loads, from the configuration file, the possible default value defined by the application and then it save it in the IsolatedStorage for a quicker further use. In fact, next time that function will be called, it will find that key in the IsolatedStorage and the data will be available in less time!public static string GetAppSettings(string key) { //return (GetAppConfigString("App.config", key)); //return null; String value = String.Empty; if (IsolatedStorageSettings.ApplicationSettings.Contains(key)) { value = IsolatedStorageSettings.ApplicationSettings[key].ToString(); } else { // se non c'è nell'isolated storage: cerca di caricare, con GetAppConfigString, il valore di default (se esiste) da app.config, per poi salvarlo nell'Isolated Storage value = GetAppConfigString("app.config", key); if (!value.Equals(String.Empty)) { SetAppSettings(key, GetAppConfigString("app.config", key)); } } return value; }
Finally here it is the utility function to recover the default value of a key from the configuration file:
private static XElement _xmlConfig; private static Object _xmlConfigSyncLock = new Object(); public static string GetAppConfigString(string configName, string key) { if (_xmlConfig == null) { lock (_xmlConfigSyncLock) { _xmlConfig = XElement.Load(configName); } } XElement element = _xmlConfig.Descendants("appSettings").Descendants("add").FirstOrDefault((el) => el.FirstAttribute.Value == key); if (element != null) { XAttribute xAttribute = element.Attribute("value"); if (xAttribute != null) return xAttribute.Value; } return String.Empty; }
When you need to get the key value from your code, you can simply call
#region App.config keys public const String LoginType = "LoginType"; ... #endregion App.config keys string loginTypeString = Utility.GetAppSettings(Constants.LoginType);
and then when the user change that default value, you can update its value in the IsolatedStorage:
Utility.SetAppSettings(Constants.LoginType, LoginType.DAILY.ToString());
where, always in the Utility class:
public static string SetAppSettings(string key, string value) { IsolatedStorageSettings.ApplicationSettings[key] = value; IsolatedStorageSettings.ApplicationSettings.Save(); return value; }
Note that data written to the IsolatedStorageSettings object hasn’t actually gotten committed to the isolated storage area and it is saved only when the application that uses the class is closed. This can occur when the user closes the Web browser, refreshes a page, or browses away from the page. If you want your application to write to isolated storage immediately, you have to call the Save method in application code.
-
Unisciti a 146 altri iscritti
Categorie
Supporta questo Blog
Translate
-
Articoli recenti
- Come inserire simboli musicali in un documento Word 24 gennaio 2023
- Come cambiare le coordinate di accredito della pensione nel sito dell’INPS 16 gennaio 2023
- Come utilizzare la Carta Sanitaria come Carta Nazionale dei Servizi (CNS) in alternativa a un accesso tramite SPID/CIE: può essere anche un agevole metodo per operare per conto di una persona anziana o comunque incapace di utilizzare servizi offerti online 12 gennaio 2023
- Cosa fare se, connettendo un PC all’hotspot Wi-Fi del proprio smartphone, su quest’ultimo si perde la connessione a Internet, benché questa venga fornita al PC 3 gennaio 2023
- Assistenza rapida: come fare se, in un nuovo PC Windows, non funziona questa indispensabile app che consente di ricevere/dare assistenza da remoto 1 gennaio 2023
Archivi
Classifica Post
- Come sapere se un rubinetto (e.g. per lavatrice o del gas) è aperto o chiuso?
- TicketOne: cosa fare se non si riesce ad acquistare un biglietto in quanto viene indicato che "Il codice fiscale inserito risulta già registrato"?
- Come recuperare il PIN/PUK della propria Carta d'Identità Elettronica (CIE) e poi leggerla con un lettore NFC
- Come collegare un telefono a un modem con SIM per ricevere/effettuare telefonate tramite un apparato telefonico multifrequenza
- Come modificare o cancellare un beneficiario/contatto precedentemente salvato in un sito della banca (e.g. BNL, IngDirect, Intesa SanPaolo)
- 18app: come fare se non si riesce più ad autorizzare un accesso con PosteID
- Da un solo smartphone come riuscire a gestire più SPID, anche ciascuno associato a persone differenti
- Come connettere uno smartphone o un tablet con un cavo Ethernet
- Cosa fare se una lampadina led a filamento non si spegne completamente anche mettendo l'interruttore ad OFF
- Facebook problem: it is still impossible to move to another album a photo if uploaded in one post along with other images
Foto su Flickr
Annunci