C#之App.Config文件操作
/// <summary>/// 操作配置文件(App.config)/// </summary>publicclassCommonConfig{/// <summary>/// 输入Key的值,返回配置的值/// </summary>/// <param name="KeyName"></param>/// <returns></returns>publicstringReadConfig(stringKeyName){Configurationcfa=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);returncfa.AppSettings.Settings[KeyName].Value;}/// <summary>/// 根据配置的名称,查询独立的数据,读取app.config/// </summary>/// <param name="ProName"></param>/// <param name="KeyName"></param>/// <returns></returns>publicstringReadConfig(stringProName,stringKeyName){Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);varmySection=config.GetSection(ProName)asCommonSection;foreach(CommonSection.CommonKeyValueSettingaddinmySection.KeyValues){if(add.Key==KeyName){returnadd.Value;}}returnnull;}/// <summary>/// 增加配置文件/// </summary>/// <param name="KeyName"></param>/// <param name="Value"></param>publicvoidAddConfig(stringKeyName,stringValue){Configurationcfa=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);cfa.AppSettings.Settings.Add(KeyName,Value);cfa.Save(ConfigurationSaveMode.Modified);ConfigurationManager.RefreshSection("appSettings");}/// <summary>/// 根据配置的名称,查询独立的数据,并添加独立的内容/// </summary>/// <param name="ProName"></param>/// <param name="KeyName"></param>/// <param name="Value"></param>/// <returns></returns>publicvoidAddConfig(stringProName,stringKeyName,stringValue){Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);varmySection=config.GetSection(ProName)asCommonSection;mySection.KeyValues.Add(newCommonSection.CommonKeyValueSetting(){Key=KeyName,Value=Value});config.Save();ConfigurationManager.RefreshSection(ProName);//刷新}/// <summary>/// 删除配置文件/// </summary>/// <param name="KeyName"></param>publicvoidDeleteConfig(stringKeyName){Configurationcfa=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);cfa.AppSettings.Settings.Remove(KeyName);cfa.Save(ConfigurationSaveMode.Modified);ConfigurationManager.RefreshSection("appSettings");}/// <summary>/// 修改配置文件数据/// </summary>/// <param name="KeyName"></param>/// <param name="Value"></param>publicvoidWriteConfig(stringKeyName,stringValue){Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);config.AppSettings.Settings[KeyName].Value=Value;config.Save(ConfigurationSaveMode.Modified);ConfigurationManager.RefreshSection("appSettings");}/// <summary>/// 根据配置的名称,查询独立的数据,并修改内容/// </summary>/// <param name="ProName"></param>/// <param name="KeyName"></param>/// <param name="Value"></param>/// <returns></returns>publicvoidWriteConfig(stringProName,stringKeyName,stringValue){Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);varmySection=config.GetSection(ProName)asCommonSection;mySection.KeyValues.Remove(KeyName);mySection.KeyValues.Add(newCommonSection.CommonKeyValueSetting(){Key=KeyName,Value=Value});config.Save();ConfigurationManager.RefreshSection(ProName);//刷新}}/// <summary>/// 配置节点基类/// </summary>publicclassCommonSection:ConfigurationSection{privatestaticConfigurationPropertys_property=newConfigurationProperty(string.Empty,typeof(CommonKeyValueCollection),null,ConfigurationPropertyOptions.IsDefaultCollection);[ConfigurationProperty("",Options=ConfigurationPropertyOptions.IsDefaultCollection)]publicCommonKeyValueCollectionKeyValues{get{return(CommonKeyValueCollection)base[s_property];}}/// <summary>/// 自定义一个集合/// </summary>[ConfigurationCollection(typeof(CommonKeyValueSetting))]publicclassCommonKeyValueCollection:ConfigurationElementCollection{publicCommonKeyValueCollection():base(StringComparer.OrdinalIgnoreCase){}newpublicCommonKeyValueSettingthis[stringname]{get{return(CommonKeyValueSetting)base.BaseGet(name);}set{base[name]=value;}}protectedoverrideConfigurationElementCreateNewElement(){returnnewCommonKeyValueSetting();}protectedoverrideobjectGetElementKey(ConfigurationElementelement){return((CommonKeyValueSetting)element).Key;}publicvoidAdd(CommonKeyValueSettingsetting){this.BaseAdd(setting);}publicvoidClear(){base.BaseClear();}publicvoidRemove(stringname){base.BaseRemove(name);}}/// <summary>/// 集合中的每个元素/// </summary>publicclassCommonKeyValueSetting:ConfigurationElement{/// <summary>/// 键/// </summary>[ConfigurationProperty("key",IsRequired=true)]publicstringKey{get{returnthis["key"].ToString();}set{this["key"]=value;}}/// <summary>/// 值/// </summary>[ConfigurationProperty("value",IsRequired=true)]publicstringValue{get{returnthis["value"].ToString();}set{this["value"]=value;}}}}