zoukankan      html  css  js  c++  java
  • C# Web.config 配置文件读取、设置

    using System;
    using System.Configuration;
    
    namespace ConfigurationTool
    {
        /// <summary>
        /// 用于XML操作
        /// </summary>
        public class ConfigurationHelper
        {
            //定义一个用于保存静态变量的实例
            private static ConfigurationHelper instance = null;
            //定义一个保证线程同步的标识
            private static readonly object locker = new object();
            //构造函数为私有,使外界不能创建该类的实例
            private ConfigurationHelper() { }
            public static ConfigurationHelper Instance
            {
                get
                {
                    if (instance == null)
                    {
                        lock (locker)
                        {
                            if (instance == null) instance = new ConfigurationHelper();
                        }
                    }
                    return instance;
                }
            }
    
            /// <summary>
            /// 读取指定路径下Web.config,指定key的value
            /// </summary>
            /// <param name="filePath">路径</param>
            /// <param name="key">key</param>
            /// <returns></returns>
            public string ReadConfiger(string filePath, string key)
            {
                ExeConfigurationFileMap map = new ExeConfigurationFileMap();
                map.ExeConfigFilename = filePath;
                Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
                string value = config.AppSettings.Settings[key].Value;
                return value;
            }
    
            /// <summary>
            /// 保存指定路径下Web.config,指定key的value
            /// </summary>
            /// <param name="filePath">路径</param>
            /// <param name="key">key</param>
            /// <param name="value">value</param>
            /// <returns></returns>
            public string SaveConfiger(string filePath, string key,string value)
            {
                ExeConfigurationFileMap map = new ExeConfigurationFileMap();
                map.ExeConfigFilename = filePath;
                Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
                //写入<add>元素的Value
                config.AppSettings.Settings[key].Value = value;
                //一定要记得保存,写不带参数的config.Save()也可以
                config.Save();
                //刷新,否则程序读取的还是之前的值(可能已装入内存)
                ConfigurationManager.RefreshSection("appSettings");
    
                return value;
            }
    
            /// <summary>
            /// 根据key获取value
            /// </summary>
            /// <param name="key">key</param>
            /// <returns></returns>
            public string GetValueByKey(string key)
            {
                try
                {
                    return ConfigurationManager.AppSettings[key];
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
    
            /// <summary>
            /// 设置key对应value
            /// </summary>
            /// <param name="key">key</param>
            /// <param name="value">value</param>
            public void SetValueByKey(string key, string value)
            {
                try
                {
                    //获取Configuration对象
                    Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                    //根据Key读取<add>元素的Value
                    //string name = config.AppSettings.Settings[key].Value;
                    //写入<add>元素的Value
                    config.AppSettings.Settings[key].Value = value;
                    //增加<add>元素
                    //config.AppSettings.Settings.Add("url", "//www.jb51.net");
                    //删除<add>元素
                    //config.AppSettings.Settings.Remove("name");
                    //一定要记得保存,写不带参数的config.Save()也可以
                    config.Save();
                    //刷新,否则程序读取的还是之前的值(可能已装入内存)
                    ConfigurationManager.RefreshSection("appSettings");
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
    
        }
    }
    

      

    博客内容主要用于日常学习记录,内容比较随意,如有问题,还需谅解!!!
  • 相关阅读:
    scrapy怎么设置带有密码的代理ip base64.encodestring不能用 python3.5,base64库里面的encodestring()被换成了什么?
    ace模板dataTables_length控制是否显示分页
    Django AUTHENTICATION_BACKENDS
    Django自定义User模型和登录验证
    一个简单的django user.is_authenticated问题
    PHP函数(四)-变量函数
    PHP函数(三)-递归函数
    Python多进程
    Python多线程-生产者消费者模型
    Python多线程-队列
  • 原文地址:https://www.cnblogs.com/YYkun/p/15207279.html
Copyright © 2011-2022 走看看