• app.config ConfigurationHelper


    using System;
    using System.Configuration;
    
    namespace EncryptTool
    {
        /// <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);
                }
            }
    
    /// 判断appSettings中是否有此项
            /// </summary>
            private static bool AppSettingsKeyExists(string strKey, Configuration config)
            {
                foreach (string str in config.AppSettings.Settings.AllKeys)
                {
                    if (str == strKey)
                    {
                        return true;
                    }
                }
                return false;
            }
    
    public static string configPath = AppContext.BaseDirectory + "app.config";
            public static string GetConfig(string section)
            {
                ExeConfigurationFileMap map = new ExeConfigurationFileMap();
                map.ExeConfigFilename = configPath;
    
                var config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
                if (AppSettingsKeyExists(section, config))
                {
                    return config.AppSettings.Settings[section].Value;
                }
                else return "";
            }
    
        }
    }
    

      

  • 相关阅读:
    关键词提取算法TextRank
    我的博文目录整理
    Windows Azure一些小技巧集合
    js数组和树互转
    this.props.form.validateFields回调不执行问题
    d3的4.x与3.x版本的区别
    d3提示框,虚线,选择区域
    d3布局
    d3文件导入和导出
    d3交互
  • 原文地址:https://www.cnblogs.com/YYkun/p/16836614.html
Copyright © 2020-2023  润新知