Winform 读取和添加 appSetting节点
程序读写配置文件
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="section4" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <section name="section3" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <section name="section2" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <section name="section1" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </configSections> <section4> <add key="section4key0" value="section4value0" /> <add key="section4key1" value="section4value1" /> <add key="section4key2" value="section4value2" /> </section4> <section3> <add key="section3key0" value="section3value0" /> <add key="section3key1" value="section3value1" /> <add key="section3key2" value="section3value2" /> </section3> <section2> <add key="section2key0" value="section2value0" /> <add key="section2key1" value="section2value1" /> <add key="section2key2" value="section2value2" /> </section2> <section1> <add key="section1key0" value="section1value0" /> <add key="section1key1" value="section1value1" /> <add key="section1key2" value="section1value2" /> </section1> </configuration>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
using System; using System.Configuration; using System.Windows.Forms; namespace appString { public class appString { [STAThread] static void Main() { string[] sections = new string[] { "section1", "section2", "section3", "section4" }; foreach (string section in sections) { for (int i = 0; i < 3; i++) { setString(section, section + "key" + i, section + "value" + i); } } string result = string.Empty; foreach (string section in sections) { result += string.Format("配置节点:{0}", section); for (int i = 0; i < 3; i++) { string childSection=string.Format("{0}",section + "key" + i); result += string.Format("\r\n\tkey:{0},", childSection); result += string.Format("value:{0}", getString(section, childSection)); } result += "\r\n"; } MessageBox.Show(result); } private static string getString(string section, string key) { try { Configuration configuration = config; AppSettingsSection newSection = appSection(section); if (newSection.Settings[key] == null) { return ""; } else { return newSection.Settings[key].Value; } } catch { return ""; } } private static void setString(string section, string key, string value) { try { Configuration configuration = config; AppSettingsSection appSetting = appSection(section); if (appSetting.Settings[key] == null) { appSetting.Settings.Add(key, value); } else { appSetting.Settings[key].Value = value; } configuration.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection(section); } catch (System.Exception Ex) { } } public static string conncetString { set; get; } private static string _configFile = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\appString\user.config"; private static string configFile { get { return _configFile; } } private static Configuration _config; public static Configuration config { get { if (_config != null) { return _config; } else { ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); fileMap.ExeConfigFilename = configFile; _config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); return _config; } } } public static AppSettingsSection appSection(string sectionName) { AppSettingsSection appSetting = (AppSettingsSection)config.GetSection(sectionName); if (appSetting != null) { return appSetting; } try { appSetting = new AppSettingsSection(); config.Sections.Add(sectionName, appSetting); appSetting.SectionInformation.ForceSave = true; config.Save(ConfigurationSaveMode.Modified); return appSetting; } catch (ConfigurationErrorsException Ex) { return null; } } } }