C# 配置文件Config操作大全

配置文件:与应用程序一起打包,是对应用程序的配置,方便管理。

一、基本操作,读写appSettings:

        /// /// 添加appsettings,如果appKey不存在则添加,存在则更新/// /// /// public static void AddConfig(string appKey, string appValue){Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (ConfigurationManager.AppSettings[appKey] == null)config.AppSettings.Settings.Add(appKey, appValue);elseconfig.AppSettings.Settings[appKey].Value = appValue;config.Save();ConfigurationManager.RefreshSection("appSettings");}/// /// 更新指定appKey的appsettings/// /// /// public static void UpdateConfig(string appKey, string appValue){Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);config.AppSettings.Settings[appKey].Value = appValue;config.Save();  //ConfigurationSaveMode.FullConfigurationManager.RefreshSection("appSettings");  //刷新命名节,在下次检索它时将从磁盘重新读取它。记住应用程序要刷新节点}/// /// 读取指定appKey的appsettings/// /// /// public static string ReadConfig(string appKey){string read = ConfigurationManager.AppSettings[appKey];return read;}/// /// 删除指定appKey的appsettings/// /// public static void DeleteConfig(string appKey){Configuration config=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (ConfigurationManager.AppSettings[appKey] != null){config.AppSettings.Settings.Remove(appKey);config.Save();ConfigurationManager.RefreshSection("appSettings");}}

二、自定义操作

1、新建section类

  class ConfigSectionData : ConfigurationSection{[ConfigurationProperty("key")]public string Key{get { return (string)this["key"]; }set { this["key"] = value; }}[ConfigurationProperty("vaule")]public string Value{get { return (string)this["vaule"]; }set { this["vaule"] = value; }}}

2、编写调用函数

         /// /// 读配置节点组value/// /// /// public static string ReadConfigGropValue(string sectionGroup, string name){Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (config.GetSectionGroup(sectionGroup)!=null){if (config.SectionGroups[sectionGroup].Sections[name] != null){ConfigSectionData ReadGroupValue = config.SectionGroups[sectionGroup].Sections[name] as ConfigSectionData;return ReadGroupValue.Value;}}return null;}/// /// 根据index读配置节点组value/// /// /// public static string ReadConfigGropValue(string sectionGroup, int index){Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (config.GetSectionGroup(sectionGroup) != null){ConfigSectionData ReadGroupValue = config.SectionGroups[sectionGroup].Sections[index] as ConfigSectionData;return ReadGroupValue.Value;}return null;}/// /// 读配置节点组key/// /// /// /// public static string ReadConfigGropKey(string sectionGroup, string name){Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (config.GetSectionGroup(sectionGroup) != null){if (config.SectionGroups[sectionGroup].Sections[name]!=null){ConfigSectionData ReadGroupValue = config.SectionGroups[sectionGroup].Sections[name] as ConfigSectionData;return ReadGroupValue.Key;}}return null;}/// /// 根据Index读配置节点组key/// /// /// /// public static string ReadConfigGropKey(string sectionGroup, int index){Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (config.GetSectionGroup(sectionGroup) != null){ConfigSectionData ReadGroupValue = config.SectionGroups[sectionGroup].Sections[index] as ConfigSectionData;return ReadGroupValue.Key;}return null;}/// /// 向配置节点组中(Settings)添加配置节点/// /// /// /// public static void AddConfigGroup(string sectionGroup, string name, string key, string value){int count = 0;List sectionName = new List();NameValueCollection nameCollection = new NameValueCollection();Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (config.SectionGroups[sectionGroup] != null){count = config.SectionGroups[sectionGroup].Sections.Count;for (int i = 0; i < count; i++){ConfigSectionData temp = config.SectionGroups[sectionGroup].Sections[i] as ConfigSectionData;sectionName.Add(config.SectionGroups[sectionGroup].Sections[i].SectionInformation.Name);nameCollection.Add(temp.Key, temp.Value);}config.SectionGroups.Remove(sectionGroup);config.Save();}config.SectionGroups.Add(sectionGroup, new ConfigurationSectionGroup());for (int i = 0; i < count; i++){ConfigSectionData da = new ConfigSectionData();da.Key = nameCollection.GetKey(i);da.Value = nameCollection.GetValues(i)[0];config.SectionGroups[sectionGroup].Sections.Add(sectionName[i], da);config.Save(ConfigurationSaveMode.Minimal);}if (!sectionName.Contains(name)){ConfigSectionData da1 = new ConfigSectionData();da1.Key = key;da1.Value = value;config.SectionGroups[sectionGroup].Sections.Add(name, da1);}config.Save(ConfigurationSaveMode.Minimal);ConfigurationManager.RefreshSection(sectionGroup);}/// /// 读取节点组中secton个数/// public static int  ReadGroupSectonCount(string sectionGroup){Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (config.SectionGroups[sectionGroup] != null){int  count = config.SectionGroups[sectionGroup].Sections.Count;return count;}else{return 0;}}/// /// 更新配置节点组中配置节点/// /// /// /// public static void UpdateConfigGroup(string sectionGroup, string name, string key, string value){int count = 0;List sectionName = new List();NameValueCollection nameCollection = new NameValueCollection();Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (config.SectionGroups[sectionGroup] != null){count = config.SectionGroups[sectionGroup].Sections.Count;for (int i = 0; i < count; i++){ConfigSectionData temp = config.SectionGroups[sectionGroup].Sections[i] as ConfigSectionData;sectionName.Add(config.SectionGroups[sectionGroup].Sections[i].SectionInformation.Name);nameCollection.Add(temp.Key, temp.Value);}config.SectionGroups.Remove(sectionGroup);config.Save();}else{config.SectionGroups.Add(sectionGroup, new ConfigurationSectionGroup());ConfigSectionData da = new ConfigSectionData();da.Key = key;da.Value = value;config.SectionGroups[sectionGroup].Sections.Add(name, da);config.Save(ConfigurationSaveMode.Minimal);count = 0;config.Save(ConfigurationSaveMode.Minimal);ConfigurationManager.RefreshSection(sectionGroup);return;}config.SectionGroups.Add(sectionGroup, new ConfigurationSectionGroup());for (int i = 0; i < count; i++){if (sectionName[i] == name){ConfigSectionData da = new ConfigSectionData();da.Key = key;da.Value = value;config.SectionGroups[sectionGroup].Sections.Add(name, da);config.Save(ConfigurationSaveMode.Minimal);}else{ConfigSectionData da = new ConfigSectionData();da.Key = nameCollection.GetKey(i);da.Value = nameCollection.GetValues(i)[0];config.SectionGroups[sectionGroup].Sections.Add(sectionName[i], da);config.Save(ConfigurationSaveMode.Minimal);}}if (!sectionName.Contains(name)){ConfigSectionData da = new ConfigSectionData();da.Key = key;da.Value = value;config.SectionGroups[sectionGroup].Sections.Add(name, da);config.Save(ConfigurationSaveMode.Minimal);}config.Save(ConfigurationSaveMode.Minimal);ConfigurationManager.RefreshSection(sectionGroup);}/// /// 更新配置节点组中配置节点key,key和name绑定/// /// /// /// public static void UpdateConfigGroupKey(string sectionGroup, string name, string key){int count = 0;List sectionName = new List();NameValueCollection nameCollection = new NameValueCollection();Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (config.SectionGroups[sectionGroup] != null){count = config.SectionGroups[sectionGroup].Sections.Count;for (int i = 0; i < count; i++){ConfigSectionData temp = config.SectionGroups[sectionGroup].Sections[i] as ConfigSectionData;sectionName.Add(config.SectionGroups[sectionGroup].Sections[i].SectionInformation.Name);nameCollection.Add(temp.Key, temp.Value);}config.SectionGroups.Remove(sectionGroup);config.Save();}config.SectionGroups.Add(sectionGroup, new ConfigurationSectionGroup());for (int i = 0; i < count; i++){if (sectionName[i] == name){ConfigSectionData da = new ConfigSectionData();da.Key = key;da.Value = nameCollection.GetValues(i)[0];config.SectionGroups[sectionGroup].Sections.Add(key, da);config.Save(ConfigurationSaveMode.Minimal);}else{ConfigSectionData da = new ConfigSectionData();da.Key = nameCollection.GetKey(i);da.Value = nameCollection.GetValues(i)[0];config.SectionGroups[sectionGroup].Sections.Add(sectionName[i], da);config.Save(ConfigurationSaveMode.Minimal);}}config.Save(ConfigurationSaveMode.Minimal);ConfigurationManager.RefreshSection(sectionGroup);}/// /// 更新配置节点组中配置节点Value/// /// /// /// public static void UpdateConfigGroupValue(string sectionGroup, string name, string value){int count = 0;List sectionName = new List();NameValueCollection nameCollection = new NameValueCollection();Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (config.SectionGroups[sectionGroup] != null){count = config.SectionGroups[sectionGroup].Sections.Count;for (int i = 0; i < count; i++){ConfigSectionData temp = config.SectionGroups[sectionGroup].Sections[i] as ConfigSectionData;sectionName.Add( config.SectionGroups[sectionGroup].Sections[i].SectionInformation.Name);nameCollection.Add(temp.Key, temp.Value);}config.SectionGroups.Remove(sectionGroup);config.Save();}config.SectionGroups.Add(sectionGroup, new ConfigurationSectionGroup());for (int i = 0; i < count; i++){if (sectionName[i] == name){ConfigSectionData da = new ConfigSectionData();da.Key = nameCollection.GetKey(i);da.Value = value;config.SectionGroups[sectionGroup].Sections.Add(name, da);config.Save(ConfigurationSaveMode.Minimal);}else{ConfigSectionData da = new ConfigSectionData();da.Key = nameCollection.GetKey(i);da.Value = nameCollection.GetValues(i)[0];config.SectionGroups[sectionGroup].Sections.Add(sectionName[i], da);config.Save(ConfigurationSaveMode.Minimal);}}config.Save(ConfigurationSaveMode.Minimal);ConfigurationManager.RefreshSection(sectionGroup);}/// /// 更新配置节点组名/// /// /// /// public static void UpdateConfigGroup(string sectionGroup, string newSectionGroup){int count = 0;List sectionName = new List();NameValueCollection nameCollection = new NameValueCollection();Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (config.SectionGroups[sectionGroup] != null){count = config.SectionGroups[sectionGroup].Sections.Count;for (int i = 0; i < count; i++){ConfigSectionData temp = config.SectionGroups[sectionGroup].Sections[i] as ConfigSectionData;sectionName.Add(config.SectionGroups[sectionGroup].Sections[i].SectionInformation.Name);nameCollection.Add(temp.Key, temp.Value);}config.SectionGroups.Remove(sectionGroup);config.Save();}config.SectionGroups.Add(newSectionGroup, new ConfigurationSectionGroup());for (int i = 0; i < count; i++){ConfigSectionData da = new ConfigSectionData();da.Key = nameCollection.GetKey(i);da.Value = nameCollection.GetValues(i)[0];config.SectionGroups[newSectionGroup].Sections.Add(sectionName[i], da);config.Save(ConfigurationSaveMode.Minimal);               }config.Save(ConfigurationSaveMode.Minimal);ConfigurationManager.RefreshSection(newSectionGroup);}/// /// 删除配置节点组中(Settings)配置节点/// /// /// /// public static void DeleteGroupSection(string sectionGroup,string name){int count = 0;List sectionName = new List();NameValueCollection nameCollection = new NameValueCollection();Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (config.SectionGroups[sectionGroup] != null){count = config.SectionGroups[sectionGroup].Sections.Count;for (int i = 0; i < count; i++){ConfigSectionData temp = config.SectionGroups[sectionGroup].Sections[i] as ConfigSectionData;sectionName.Add(config.SectionGroups[sectionGroup].Sections[i].SectionInformation.Name);nameCollection.Add(temp.Key, temp.Value);}config.SectionGroups.Remove(sectionGroup);config.Save();}config.SectionGroups.Add(sectionGroup, new ConfigurationSectionGroup());for (int i = 0; i < count; i++){if (sectionName[i] != name){ConfigSectionData da = new ConfigSectionData();da.Key = nameCollection.GetKey(i);da.Value = nameCollection.GetValues(i)[0];config.SectionGroups[sectionGroup].Sections.Add(sectionName[i], da);config.Save(ConfigurationSaveMode.Minimal);}}config.Save(ConfigurationSaveMode.Minimal);ConfigurationManager.RefreshSection(sectionGroup);}/// /// 删除配置节点组/// public static void DeleteConfigGroup(string sectionGroup){Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);config.SectionGroups.Remove(sectionGroup);//config.SectionGroups.Clear();config.Save(ConfigurationSaveMode.Minimal);}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部