1. ConfigurationManager的命名空间:using System.Configuration;
2. To be able to save you have to use a configuration object returned by the OpenExeConfiguration Method
//Create the object Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); //make changes config.AppSettings.Settings["Username"].Value = txtUsername.Text; config.AppSettings.Settings["Password"].Value = txtPassword.Text; //save to apply changes config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings");
3. When you run your application with F5,
- your code is compiled,
- the executable is copied to the
binorbinDebugsubdirectory of your source code directory, - your
app.configis copied asyourexecutable.exe.configinto that directory, and - your executable is started in that directory.
Thus, your application uses the yourexecutable.exe.config in the bin or binDebug directory, and it is there that ConfigurationManager saves the changes, not in your source code directory. This won't be an issue after deploying your application, because then, changes will go to yourexecutable.exe.config in the deployment directory, which is what you want.