Come modificare le impostazioni dell'applicazione (Impostazioni) mentre applicazione è aperta?

StackOverflow https://stackoverflow.com/questions/1170850

  •  19-09-2019
  •  | 
  •  

Domanda

ho scritto una classe che dovrebbe permettere a me di leggere e scrivere i valori nelle impostazioni app facilmente:

public static class SettingsManager
    {
        public static string ComplexValidationsString
        {
            get { return (string)Properties.Settings.Default["ComplexValidations"]; }
            set
            {
                Properties.Settings.Default["ComplexValidations"] = value;
                Properties.Settings.Default.Save();
            }
        }

il problema è il valore non è realmente salvato, voglio dire che non è cambiato quando ho chiudere l'applicazione ed eseguirlo nuovamente. Che cosa posso fare per garantire che il valore salvato persiste tra la chiusura e l'apertura di nuovo?

È stato utile?

Soluzione

Si dovrebbe verificare

Properties.Settings.Default.Properties["ComplexValidations"].IsReadOnly

E 'probabilmente vero, questo è ciò che significa Roland con "Ambito di applicazione". Salva fallirà silenziosamente. Date un'occhiata a progetto | Proprietà |. Impostazioni, terza colonna

Altri suggerimenti

impostazioni portata deve essere utente non applicazione

Sei sicuro che non è salvare le modifiche? Il file [ProgramName] exe.config nella cartella bin non verrà aggiornato. Il file acutal utilizzato di solito è messo in C:\Documents and Settings\[user]\Local Settings\Application Data\[company name]\[application].exe[hash string]\[version]\user.config. So che quando ho provato questo genere di cose ci ho messo un po 'a capire che questo era il file che è stato sempre aggiornato.

Ho appena testato un'impostazione utente e viene mantenuto se si esegue questa applicazione Console due volte:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(Settings1.Default.Setting);
        Console.ReadLine();
        Settings1.Default.Setting = "A value different from app.config's";
        Settings1.Default.Save();
    }
}

Basta provare. Non ci vorrà un minuto.

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