适用于app.config与web.config的ConfigUtil读写工具类
发布日期:2021-05-09 09:35:27 浏览次数:14 分类:博客文章

本文共 6969 字,大约阅读时间需要 23 分钟。

之前文章:《》,现在重新整理一个更完善的版本,增加批量读写以及指定配置文件路径,代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Configuration;using System.IO;namespace Zuowj.Utils{    ///     /// 配置工具类    /// Author:左文俊    /// Date:2018/1/27    public static class ConfigUtil    {        ///         /// 获取管理配置文件对象Configuration        ///         /// 指定要管理的配置文件路径,如果为空或不存在,则管理程序集默认的配置文件路径        /// 
private static Configuration GetConfiguration(string configPath = null) { if (!string.IsNullOrEmpty(configPath) && File.Exists(configPath)) { ExeConfigurationFileMap map = new ExeConfigurationFileMap(); map.ExeConfigFilename = configPath; return ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None); } else { return ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); } } /// /// 获取指定配置文件+配置名称的配置项的值 /// public static string GetAppSettingValue(string key, string defaultValue = null, string configPath = null) { var config = GetConfiguration(configPath); var appSetting = config.AppSettings.Settings[key]; return appSetting.Value; } /// /// 设置配置值(存在则更新,不存在则新增) /// public static void SetAppSettingValue(string key, string value, string configPath = null) { var config = GetConfiguration(configPath); var setting = config.AppSettings.Settings[key]; if (setting == null) { config.AppSettings.Settings.Add(key, value); } else { setting.Value = value; } config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } /// /// 删除配置值 /// public static void RemoveAppSetting(string key, string configPath = null) { var config = GetConfiguration(configPath); config.AppSettings.Settings.Remove(key); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } /// /// 设置多个配置值(存在则更新,不存在则新增) /// public static void SetAppSettingValues(IEnumerable
> settingValues, string configPath = null) { var config = GetConfiguration(configPath); foreach (var item in settingValues) { var setting = config.AppSettings.Settings[item.Key]; if (setting == null) { config.AppSettings.Settings.Add(item.Key, item.Value); } else { setting.Value = item.Value; } } config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } ///
/// 获取所有配置值 /// public static Dictionary
GetAppSettingValues(string configPath = null) { Dictionary
settingDic = new Dictionary
(); var config = GetConfiguration(configPath); var settings = config.AppSettings.Settings; foreach (string key in settings.AllKeys) { settingDic[key] = settings[key].ToString(); } return settingDic; } ///
/// 删除多个配置值 /// public static void RemoveAppSettings(string configPath = null, params string[] keys) { var config = GetConfiguration(configPath); if (keys != null) { foreach (string key in keys) { config.AppSettings.Settings.Remove(key); } } else { config.AppSettings.Settings.Clear(); } config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } ///
/// 获取连接字符串 /// public static string GetConnectionString(string name, string defaultconnStr = null, string configPath = null) { var config = GetConfiguration(configPath); var connStrSettings = config.ConnectionStrings.ConnectionStrings[name]; if (connStrSettings == null) { return defaultconnStr; } return connStrSettings.ConnectionString; } ///
/// 获取指定配置文件+连接名称的连接字符串配置项 /// public static ConnectionStringSettings GetConnectionStringSetting(string name, string configPath = null) { var config = GetConfiguration(configPath); var connStrSettings = config.ConnectionStrings.ConnectionStrings[name]; return connStrSettings; } ///
/// 设置连接字符串的值(存在则更新,不存在则新增) /// public static void SetConnectionString(string name, string connstr, string provider, string configPath = null) { var config = GetConfiguration(configPath); ConnectionStringSettings connStrSettings = config.ConnectionStrings.ConnectionStrings[name]; if (connStrSettings != null) { connStrSettings.ConnectionString = connstr; connStrSettings.ProviderName = provider; } else { connStrSettings = new ConnectionStringSettings(name, connstr, provider); config.ConnectionStrings.ConnectionStrings.Add(connStrSettings); } config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("connectionStrings"); } ///
/// 删除连接字符串配置项 /// public static void RemoveConnectionString(string name, string configPath = null) { var config = GetConfiguration(configPath); config.ConnectionStrings.ConnectionStrings.Remove(name); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("connectionStrings"); } ///
/// 获取所有的连接字符串配置项 /// public static Dictionary
GetConnectionStringSettings(string configPath = null) { var config = GetConfiguration(configPath); var connStrSettingDic = new Dictionary
(); var connStrSettings = ConfigurationManager.ConnectionStrings; foreach (ConnectionStringSettings item in connStrSettings) { connStrSettingDic[item.Name] = item; } return connStrSettingDic; } ///
/// 设置多个连接字符串的值(存在则更新,不存在则新增) /// public static void SetConnectionStrings(IEnumerable
connStrSettings, string configPath = null) { var config = GetConfiguration(configPath); foreach (var item in connStrSettings) { ConnectionStringSettings connStrSetting = config.ConnectionStrings.ConnectionStrings[item.Name]; if (connStrSetting != null) { connStrSetting.ConnectionString = item.ConnectionString; connStrSetting.ProviderName = item.ProviderName; } else { config.ConnectionStrings.ConnectionStrings.Add(item); } } config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("connectionStrings"); } ///
/// 删除多个连接字符串配置项 /// public static void RemoveConnectionStrings(string configPath = null, params string[] names) { var config = GetConfiguration(configPath); if (names != null) { foreach (string name in names) { config.ConnectionStrings.ConnectionStrings.Remove(name); } } else { config.ConnectionStrings.ConnectionStrings.Clear(); } config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("connectionStrings"); } }}

  

上一篇:分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!
下一篇:基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类)

发表评论

最新留言

不错!
[***.144.177.141]2025年04月14日 05时36分08秒