using System; using System.Collections.Specialized; using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Xml; namespace ApplicationSettingsSample { public partial class ConfigurationManagerForm : Form { Configuration configuration; public ConfigurationManagerForm() { InitializeComponent(); // Open .config file (current user's local user.config) this.configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal); // Read a setting from the config file string setting = ReadSetting("userSettings", "ApplicationSettingsSample.Properties.Settings", "HighScore"); MessageBox.Show(setting); // Write a setting to the config file WriteSetting("userSettings", "ApplicationSettingsSample.Properties.Settings", "HighScore", "200"); // Save updated settings (only to user.config) this.configuration.Save(ConfigurationSaveMode.Full, true); //// BAD - writing to AssemblyName.exe.config violates the rollback model, and the spirit //// of read-only application settings //// Open .config file (current user's local user.config) //this.configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); //// Read a setting from the config file //string setting = ReadSetting("applicationSettings", "SettingsSample.MySettings", "AssemblyPaths"); //MessageBox.Show(setting); //// Write a setting to the config file //WriteSetting("applicationSettings", "SettingsSample.MySettings", "AssemblyPaths", "adsf"); //// Save updated settings (only to user.config) //this.configuration.Save(ConfigurationSaveMode.Full, true); } public string ReadSetting(string sectionGroupName, string sectionName, string settingName) { // Get sectionGroup ConfigurationSectionGroup sectionGroup = this.configuration.GetSectionGroup(sectionGroupName); // Get section ClientSettingsSection section = (ClientSettingsSection)sectionGroup.Sections.Get(sectionName); // Get setting SettingElement setting = section.Settings.Get(settingName); // Read setting value return setting.Value.ValueXml.InnerText; } public void WriteSetting(string sectionGroupName, string sectionName, string settingName, string newSettingValue) { // Get sectionGroup ConfigurationSectionGroup sectionGroup = this.configuration.GetSectionGroup(sectionGroupName); // Get section ClientSettingsSection section = (ClientSettingsSection)sectionGroup.Sections.Get(sectionName); // Get setting SettingElement setting = section.Settings.Get(settingName); // Writing a setting value setting.Value.ValueXml.InnerText = newSettingValue; } } }