2009-07-27 4 views

Répondre

20

Dans ASP.NET:

Configuration config = WebConfigurationManager.OpenWebConfiguration(null); 
AppSettingsSection app = config.AppSettings; 
app.Settings.Add("x", "this is X"); 
config.Save(ConfigurationSaveMode.Modified); 

En WinForms:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
AppSettingsSection app = config.AppSettings; 
app.Settings.Add("x", "this is X"); 
config.Save(ConfigurationSaveMode.Modified); 
+0

quand j'ouvre app.config il ne pas écrire "x" et "ceci est x" –

+0

m'a aidé ... :) –

+2

@monkey_boys: Lors de l'exécution par exemple. une application Win Forms à partir de VS, le fichier .config pertinent à rechercher est: .vshost.exe.config, donc si vous regardez dans .exe.config alors vous ne voyez aucun changement . – Wout

1

Je sais que vous avez demandé spécifiquement pour la solution WinForms , mais cela pourrait en aider d'autres. Pour une application de console .NET 4.0, aucun de ceux-ci n'a fonctionné pour moi. Donc, je ce qui suit et cela a fonctionné:

private static void UpdateSetting(string key, string value) 
{ 
    Configuration configuration = ConfigurationManager. 
     OpenExeConfiguration(Assembly.GetExecutingAssembly().Location); 
    configuration.AppSettings.Settings[key].Value = value; 
    configuration.Save(); 

    ConfigurationManager.RefreshSection("appSettings"); 
}