AppConfig 操作简易封装
2024-09-08 04:56:41
using System;
using System.Configuration; namespace HT.IMS.Utility
{
/// <summary>
/// 操作配置文件(修改)
/// </summary>
public class AppSettings
{
/// <summary>
/// 设置配置文件AppSettings节点的键名和值并持久化到文件
/// </summary>
/// <param name="key">节点名称</param>
/// <param name="value">节点值</param>
public static void SetConfig(string key, string value)
{
try
{
//打开配置文件流
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); AppSettingsSection section = config.AppSettings; if (section != null && section.Settings[key] != null)
{
section.Settings[key].Value = value;
}
else
{
section.Settings.Add(new KeyValueConfigurationElement(key, value));
} //保存修改后的节点
config.Save(ConfigurationSaveMode.Modified); //刷新节点,以便下次从 ConfigurationManager.AppSettings 中取值时,
//重新从磁盘读取节点的值
ConfigurationManager.RefreshSection("appSettings");
}
catch (Exception ex)
{
throw ex;
}
} public static void SetConfigConnectionstring(string key, string value)
{
try
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); ConnectionStringsSection section = config.ConnectionStrings; if (section != null && section.ConnectionStrings[key] != null)
{
section.ConnectionStrings[key].ConnectionString = value;
}
else
{
section.ConnectionStrings.Add(new ConnectionStringSettings(key, value, "System.Data.SqlClient"));
} config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("connectionStrings");
}
catch (Exception ex)
{
throw ex;
}
}
} /// <summary>
/// 操作配置文件(读取)
/// </summary>
/// <typeparam name="T">返回什么类型的值</typeparam>
public class AppSettings<T> : AppSettings
{
public static T GetConfig(string key, byte valType = )
{
try
{
Type type = typeof(T);
object result = null; //返回特定类型的值
object val = null; //配置节点的值 if (valType == )
val = ConfigurationManager.AppSettings[key];
else
val = ConfigurationManager.ConnectionStrings[key]; if (type == typeof(int))
result = Convert.ToInt32(val);
else if (type == typeof(string))
result = Convert.ToString(val);
else if (type == typeof(double))
result = Convert.ToDouble(val);
else
result = Convert.ChangeType(val, type); return (T)result;
}
catch
{
return default(T);
}
}
}
}
最新文章
- 【WP开发】记录屏幕操作
- 图解GitHub基本操作
- JAVA期末设计第十三周
- 存储OS
- DDMS无法查看data/data目录?
- cas单点注销失败Error Sending message to url endpoint
- MAC中开发Unity3D
- ios网络:应用一个请求的7个步骤
- Java学习笔记--StringTokenizer的使用
- 了解SQL注入攻击
- Win10 UWP开发系列:开发一个自定义控件——带数字徽章的AppBarButton
- iPhone safari中Document事件不触发的解决方案 [冒泡]
- flask入门篇
- CTime格式化
- QT_校园导航Update
- 【Alpha 冲刺】 2/12
- SQL Server配置支持中文
- 【Unity】制作简易定时器(Timer)
- [分布式系统学习]阅读笔记 Distributed systems for fun and profit 抽象 之二
- vue-cli 添加到生产环境问题总结
热门文章
- php的socket通信【转载】
- android view自定义
- TCP/IP学习笔记(3)----IP,ARP,RARP协议
- codevs——1009 产生数
- TCP/IP协议族-----22、万维网和HTTP
- 看我如何基于Python&;Facepp打造智能监控系统
- Android和MVC
- Tcl学习之--文件操作
- C# 最基本的涉及模式(单例模式) C#种死锁:事务(进程 ID 112)与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务,解决方案: C#关闭应用程序时如何关闭子线程 C#中 ThreadStart和ParameterizedThreadStart区别
- 嵌入式开发之函数解析---ip地址2进制转字符inet_ntoa 调用中只生效一次