2009-07-27 4 views

Odpowiedz

20

W ASP.NET:

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

W WinForms:

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

po otwarciu pliku app.config nie zapisuję "x" i "to jest x" –

+0

pomógł mi ... :) –

+2

@monkey_boys: Podczas działania np. aplikacja formularzy wygranych z VS, odpowiedni plik .config do wyszukania to: .vshost.exe.config, więc jeśli szukałeś w .exe.config, to nie widzisz żadnej zmiany . – Wout

1

Wiem, że specjalnie poprosił o rozwiązanie WinForms , ale to może pomóc innym. W przypadku aplikacji konsoli .NET 4.0 żadna z nich nie działała dla mnie. Więc użyłem następujących i to działało:

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"); 
}