C# 操作config文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;

namespace Test
{
    class ConfigHelper
    {
        #region ConnectionStrings

        public static string GetConnectionStringsConfig(string connectionName)
        {
            try
            {
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                return config.ConnectionStrings.ConnectionStrings[connectionName].ConnectionString;
                //return ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();
            }
            catch
            {
                return "";
            }
        }

        public static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName)
        {   
            //记录该连接串是否已经存在
            bool isModified = false;    
            if (ConfigurationManager.ConnectionStrings[newName] != null)
                isModified = true;

            //新建一个连接字符串实例
            ConnectionStringSettings mySettings = new ConnectionStringSettings(newName, newConString, newProviderName);

            // 打开可执行的配置文件*.exe.config
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            // 如果连接串已存在,首先删除它
            if (isModified)
                config.ConnectionStrings.ConnectionStrings.Remove(newName);

            // 将新的连接串添加到配置文件中.
            config.ConnectionStrings.ConnectionStrings.Add(mySettings);

            // 保存对配置文件所作的更改
            config.Save(ConfigurationSaveMode.Modified);

            // 强制重新载入配置文件的ConnectionStrings配置节
            ConfigurationManager.RefreshSection("ConnectionStrings");
        }

        #endregion

        #region appSettings

        public static string GetAppConfig(string strKey)
        {
            foreach (string key in ConfigurationManager.AppSettings)
            {
                if (key == strKey)
                {
                    return ConfigurationManager.AppSettings[strKey];
                }
            }
            return null;
        }

        public static void UpdateAppConfig(string newKey, string newValue)
        {
            bool isModified = false;
            foreach (string key in ConfigurationManager.AppSettings)
            {
                if (key == newKey)
                {
                    isModified = true;
                    break;
                }
            }

            // Open App.Config of executable
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            // You need to remove the old settings object before you can replace it
            if (isModified)
                config.AppSettings.Settings.Remove(newKey);

            // Add an Application Setting.
            config.AppSettings.Settings.Add(newKey, newValue);

            // Save the changes in App.config file.
            config.Save(ConfigurationSaveMode.Modified);

            // Force a reload of a changed section.
            ConfigurationManager.RefreshSection("appSettings");
        }

        #endregion

    }
}

https://www.cnblogs.com/qq450867541/p/7119433.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值