java web app conf,适用于app.config与web.config的ConfigUtil读写工具类

之前文章:《两种读写配置文件的方案(app.config与web.config通用)》,现在重新整理一个更完善的版本,增加批量读写以及指定配置文件路径,代码如下:

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

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值