Config文件的读和写

下面的仅显示了对appSettings的读和写,自己可以对其进行扩展!下面不仅适用于App.config,也适用于Web.config,不过,对于Web.config的写操作会造出网站的重启!

using System.Reflection;
using System.Configuration;
 
namespace zyjTools {
    public static class ConfigHelper {
        #region 扩展方法
        /// <summary>
        /// 更新Appsetting中的某个key的值
        /// </summary>
        /// <param name="keyStr">key值</param>
        /// <param name="valueStr">value值</param>
        /// <param name="refreshType">刷新类型,1,刷新文件缓存中的配置项,2,刷新当前内存中的配置项</param>
        private static void UpdateConfig(string keyStr, string valueStr, bool IsRuntime) {
            Configuration config;
            if (!IsRuntime) {
                //设置并刷新文件缓存中的app.config,用于下次程序启动,并不影响当前程序内存中的配置
                string assemblyConfigFile = Assembly.GetEntryAssembly().Location;
                config = ConfigurationManager.OpenExeConfiguration(assemblyConfigFile);
            } else {
                //设置并刷新内存(runtime)的app.config,用于当前启动的程序
                config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            }
            AppSettingsSection appSettings = (AppSettingsSection)config.GetSection("appSettings");
            appSettings.Settings.Remove(keyStr);
            appSettings.Settings.Add(keyStr, valueStr);
            config.Save(ConfigurationSaveMode.Modified);
            if (IsRuntime) {
                ConfigurationManager.RefreshSection("appSettings");
            }
        }
        private static void UpdateConfig_cache(string keyStr, string valueStr) {
            UpdateConfig(keyStr, valueStr, false);
        }
        private static void UpdateConfig_runtime(string keyStr, string valueStr) {
            UpdateConfig(keyStr, valueStr, true);
        }
 
        /// <summary>
        /// 设置App.config的AppSettings节点下key对应的键值
        /// </summary>
        /// <param name="key"></param>
        public static void SetConfig(string keyStr, string valueStr) {
            UpdateConfig_cache(keyStr, valueStr);
            UpdateConfig_runtime(keyStr, valueStr);
        }
 
        /// <summary>
        /// 获取App.config的AppSettings节点下key对应的键值,如果key有多个标签对应,多个值以逗号隔开
        /// </summary>
        /// <param name="key">键值</param>
        /// <returns></returns>
        public static string GetConfig(string key) {
            string r = ConfigurationManager.AppSettings[key];
            return r==null?"":r;
        }
        #endregion
    }
}

 

转载于:https://www.cnblogs.com/zyj0021/archive/2011/12/21/2295275.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值