zoukankan      html  css  js  c++  java
  • C# 程序配置文件的操作(ConfigurationManager的使用)

    public class ConfigureAppConfig
    {
        //静态构造,不能实例化
        static ConfigureAppConfig() { }
     
        /**//// <summary>
        /// 获取AppSettings配置节中的Key值
        /// </summary>
        /// <param name="keyName">Key's name</param>
        /// <returns>Key's value</returns>
        public static string GetAppSettingsKeyValue(string keyName)
        {
            return ConfigurationManager.AppSettings.Get(keyName);
        }
     
        /**//// <summary>
        /// 获取ConnectionStrings配置节中的值
        /// </summary>
        /// <returns></returns>
        public static string GetConnectionStringsElementValue()
        {
            ConnectionStringSettings settings = System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"];
            return settings.ConnectionString;
        }
     
        /**//// <summary>
        /// 保存节点中ConnectionStrings的子节点配置项的值
        /// </summary>
        /// <param name="elementValue"></param>
        public static void ConnectionStringsSave(string ConnectionStringsName, string elementValue)
        {
            System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            config.ConnectionStrings.ConnectionStrings["connectionString"].ConnectionString = elementValue;
            config.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("connectionStrings");
        }
     
        /**//// <summary>
        /// 判断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;
        }
     
        /**//// <summary>
        /// 保存appSettings中某key的value值
        /// </summary>
        /// <param name="strKey">key's name</param>
        /// <param name="newValue">value</param>
        public static void AppSettingsSave(string strKey, string newValue)
        {
            System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            if (AppSettingsKeyExists(strKey, config))
            {
                config.AppSettings.Settings[strKey].Value = newValue;
                config.Save(ConfigurationSaveMode.Modified);
                ConfigurationManager.RefreshSection("appSettings");
            }
        }
    }
     

    如果你的程序是对其它程序的配置文件进行操作,代码如下:
    ExeConfigurationFileMap filemap = new ExeConfigurationFileMap();
    filemap.ExeConfigFilename = filePath;//配置文件路径
    config = ConfigurationManager.OpenMappedExeConfiguration(filemap, ConfigurationUserLevel.None);
     
    if (AppSettingsKeyExists("Refresh", config))
    {
        config.AppSettings.Settings["Refresh"].Value = M_TimeRead.ToString();
    }
     
    if (AppSettingsKeyExists("MachineNo", config))
    {
        config.AppSettings.Settings["MachineNo"].Value = M_MachineNo;
     
    }
    config.Save(ConfigurationSaveMode.Modified);
    ConfigurationManager.RefreshSection("appSettings");
     
    config.ConnectionStrings.ConnectionStrings["connectionString"].ConnectionString = M_ConnectionString;
    config.Save(ConfigurationSaveMode.Modified);
    ConfigurationManager.RefreshSection("connectionStrings");
     

    数据库字符串加密
    ExeConfigurationFileMap filemap = new ExeConfigurationFileMap();
    filemap.ExeConfigFilename = Application.ExecutablePath + ".Config"; //filePath;
    config = ConfigurationManager.OpenMappedExeConfiguration(filemap, ConfigurationUserLevel.None);
    //指定我所要的节点
    ConfigurationSection section = config.ConnectionStrings;
     
    if ((section.SectionInformation.IsProtected == false) && (section.ElementInformation.IsLocked == false))
    {
        //制定节点加密
        section.SectionInformation.ProtectSection(protect);
        //即使没有修改也保存设置
        section.SectionInformation.ForceSave = true;
        //配置文件内容保存到xml
        config.Save(ConfigurationSaveMode.Full);
    }
  • 相关阅读:
    栈解旋(unwinding)
    自定义异常
    异常的基本使用
    什么是跨域?
    Vue-Vue-router跳转页面时返回顶部
    jquery&vue backTop缓慢返回顶部的方法应用
    Windows 10下使用U盘安装Ubuntu双系统
    Windows下磁盘分配操作
    在双系统(Windows与Ubuntu)下删除Ubuntu启动项
    .net framework体系结构
  • 原文地址:https://www.cnblogs.com/Shadow3627/p/2983474.html
Copyright © 2011-2022 走看看