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);
                }
            }
    
        }
    }
    

      

    博客内容主要用于日常学习记录,内容比较随意,如有问题,还需谅解!!!
  • 相关阅读:
    Docker
    CTF各种资源:题目、工具、资料
    Android工具集合
    Android相关资源
    命令注入新玩法:巧借环境攻击目标
    分库分表
    数据库读写分离
    Insomni'hack teaser 2019
    Insomni'hack teaser 2019
    35C3 CTF
  • 原文地址:https://www.cnblogs.com/YYkun/p/15207279.html
Copyright © 2011-2022 走看看