C#读写App.config配置文件(封装好的类)

AppSettings.cs类 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Windows.Forms;
using System.Configuration;

namespace 一键配置工具
{
    class AppSettings
    {
        //指定config文件读取
        private static string file = System.Windows.Forms.Application.ExecutablePath;    
        private static Configuration config = ConfigurationManager.OpenExeConfiguration(file);
        /// 
        /// 根据连接串名字connectionName返回数据连接字符串 
        /// 
        /// 
        /// 
  
        public static string GetConnectionString(string connectionName)
        {
            //指定config文件读取
            string connectionString =
                config.ConnectionStrings.ConnectionStrings[connectionName].ConnectionString.ToString();
            return connectionString;
        }
        /// 
        ///更新连接字符串  
        /// 
        ///连接字符串名称 
        ///连接字符串内容 
        ///数据提供程序名称 
        public static void setConnectionString(string name, string conString, string providerName)
        {
            bool exist = false; //记录该连接串是否已经存在  
            //如果要更改的连接串已经存在  
            if (config.ConnectionStrings.ConnectionStrings[name] != null)
            {
                exist = true;
            }
            // 如果连接串已存在,首先删除它  
            if (exist)
            {
                config.ConnectionStrings.ConnectionStrings.Remove(name);
            }
            //新建一个连接字符串实例  
            ConnectionStringSettings mySettings =
                new ConnectionStringSettings(name, conString, providerName);
            // 将新的连接串添加到配置文件中.  
            config.ConnectionStrings.ConnectionStrings.Add(mySettings);
            // 保存对配置文件所作的更改  
            config.Save(ConfigurationSaveMode.Modified);
            // 强制重新载入配置文件的ConnectionStrings配置节  
            ConfigurationManager.RefreshSection("connectionStrings");
        }
        /// 
        ///获取*.exe.config文件中appSettings配置节点的value值  
        /// 
        /// 
        /// 
        public static string GetValue(string strKey)
        {
            foreach (string key in config.AppSettings.Settings.AllKeys)
            {
                if (key == strKey)
                {
                    return config.AppSettings.Settings[strKey].Value.ToString();
                }
            }
            return null;
        }
        ///  
        ///设置*.exe.config文件中appSettings节点的值 
        ///  
        ///  
        ///  
        public static void SetValue(string key, string value)
        {
            //向配置文件中添加键值对,有则修改,无则添加
            if (!ConfigurationManager.AppSettings.AllKeys.Contains(key))
            {
                config.AppSettings.Settings.Add(key, value);
                config.Save();
            }
            else
            {
                config.AppSettings.Settings[key].Value = value;
                config.Save();
            }
            ConfigurationManager.RefreshSection("appSettings");
        }
    }
}

使用示例:

1、根据Key读取元素的Value
 string name = AppSettings.GetValue("name");

2、设置或者添加add节点

AppSettings.SetValue("name","张三" );

AppSettings.SetValue("age","18" );

你可能感兴趣的:(C#)