Come modificare le impostazioni dell'applicazione (Impostazioni) mentre applicazione è aperta?
-
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?
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.