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

最新文章

  1. 【WP开发】记录屏幕操作
  2. 图解GitHub基本操作
  3. JAVA期末设计第十三周
  4. 存储OS
  5. DDMS无法查看data/data目录?
  6. cas单点注销失败Error Sending message to url endpoint
  7. MAC中开发Unity3D
  8. ios网络:应用一个请求的7个步骤
  9. Java学习笔记--StringTokenizer的使用
  10. 了解SQL注入攻击
  11. Win10 UWP开发系列:开发一个自定义控件——带数字徽章的AppBarButton
  12. iPhone safari中Document事件不触发的解决方案 [冒泡]
  13. flask入门篇
  14. CTime格式化
  15. QT_校园导航Update
  16. 【Alpha 冲刺】 2/12
  17. SQL Server配置支持中文
  18. 【Unity】制作简易定时器(Timer)
  19. [分布式系统学习]阅读笔记 Distributed systems for fun and profit 抽象 之二
  20. vue-cli 添加到生产环境问题总结

热门文章

  1. php的socket通信【转载】
  2. android view自定义
  3. TCP/IP学习笔记(3)----IP,ARP,RARP协议
  4. codevs——1009 产生数
  5. TCP/IP协议族-----22、万维网和HTTP
  6. 看我如何基于Python&amp;Facepp打造智能监控系统
  7. Android和MVC
  8. Tcl学习之--文件操作
  9. C# 最基本的涉及模式(单例模式) C#种死锁:事务(进程 ID 112)与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务,解决方案: C#关闭应用程序时如何关闭子线程 C#中 ThreadStart和ParameterizedThreadStart区别
  10. 嵌入式开发之函数解析---ip地址2进制转字符inet_ntoa 调用中只生效一次