Domanda

Sto cercando di cambiare in runtime una chiave del mio file impostazioni delle applicazioni, ma non funziona.

Lo faccio in questo modo:

ConfigurationSettings.AppSettings["XPTO"] = "HELLO";

Sembra che cambia solo nella memoria, non sul file.

Qualcuno sa come fare questo?

Grazie.

È stato utile?

Soluzione

Date un'occhiata al mio panoramica di file di impostazioni .NET ... In breve, credo che si desidera un ambiente utente con ambito. Esso si comporterà più come ci si aspetta.

  

Modifica Se si utilizza il impostazioni di design in Visual Studio , poi semplicemente cambiare il "Scope" a "utente". In caso contrario, si dovrebbe essere in grado di fare l'equivalente a livello di codice.

Altri suggerimenti

Il file AppSettings non è progettato per essere scrivibile. È stato progettato per memorizzare le configurazioni che non cambierà in fase di esecuzione, ma potrebbe cambiare nel tempo vale a dire:. Stringhe DB di connessione, URL del servizio web di, ecc

Così, mentre può essere possibile aggiornare il file in realtà si dovrebbe rivaluta se questo valore deve essere conservato lì.

Supponendo che la vostra applicazione ha i permessi di scrittura sul file ...



    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  // the config that applies to all users
    AppSettingsSection appSettings = config.AppSettings;

    if (appSettings.IsReadOnly() == false)
    {
        appSettings("Key").Value = "new value";

        config.Save();
    }

sto ignorando tutte le possibili eccezioni che possono essere lanciate ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top