1. using System;
  2. using System.Configuration;
  3.  
  4. namespace HT.IMS.Utility
  5. {
  6. /// <summary>
  7. /// 操作配置文件(修改)
  8. /// </summary>
  9. public class AppSettings
  10. {
  11. /// <summary>
  12. /// 设置配置文件AppSettings节点的键名和值并持久化到文件
  13. /// </summary>
  14. /// <param name="key">节点名称</param>
  15. /// <param name="value">节点值</param>
  16. public static void SetConfig(string key, string value)
  17. {
  18. try
  19. {
  20. //打开配置文件流
  21. Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  22.  
  23. AppSettingsSection section = config.AppSettings;
  24.  
  25. if (section != null && section.Settings[key] != null)
  26. {
  27. section.Settings[key].Value = value;
  28. }
  29. else
  30. {
  31. section.Settings.Add(new KeyValueConfigurationElement(key, value));
  32. }
  33.  
  34. //保存修改后的节点
  35. config.Save(ConfigurationSaveMode.Modified);
  36.  
  37. //刷新节点,以便下次从 ConfigurationManager.AppSettings 中取值时,
  38. //重新从磁盘读取节点的值
  39. ConfigurationManager.RefreshSection("appSettings");
  40. }
  41. catch (Exception ex)
  42. {
  43. throw ex;
  44. }
  45. }
  46.  
  47. public static void SetConfigConnectionstring(string key, string value)
  48. {
  49. try
  50. {
  51. Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  52.  
  53. ConnectionStringsSection section = config.ConnectionStrings;
  54.  
  55. if (section != null && section.ConnectionStrings[key] != null)
  56. {
  57. section.ConnectionStrings[key].ConnectionString = value;
  58. }
  59. else
  60. {
  61. section.ConnectionStrings.Add(new ConnectionStringSettings(key, value, "System.Data.SqlClient"));
  62. }
  63.  
  64. config.Save(ConfigurationSaveMode.Modified);
  65.  
  66. ConfigurationManager.RefreshSection("connectionStrings");
  67. }
  68. catch (Exception ex)
  69. {
  70. throw ex;
  71. }
  72. }
  73. }
  74.  
  75. /// <summary>
  76. /// 操作配置文件(读取)
  77. /// </summary>
  78. /// <typeparam name="T">返回什么类型的值</typeparam>
  79. public class AppSettings<T> : AppSettings
  80. {
  81. public static T GetConfig(string key, byte valType = )
  82. {
  83. try
  84. {
  85. Type type = typeof(T);
  86. object result = null; //返回特定类型的值
  87. object val = null; //配置节点的值
  88.  
  89. if (valType == )
  90. val = ConfigurationManager.AppSettings[key];
  91. else
  92. val = ConfigurationManager.ConnectionStrings[key];
  93.  
  94. if (type == typeof(int))
  95. result = Convert.ToInt32(val);
  96. else if (type == typeof(string))
  97. result = Convert.ToString(val);
  98. else if (type == typeof(double))
  99. result = Convert.ToDouble(val);
  100. else
  101. result = Convert.ChangeType(val, type);
  102.  
  103. return (T)result;
  104. }
  105. catch
  106. {
  107. return default(T);
  108. }
  109. }
  110. }
  111. }

AppConfig 操作简易封装的更多相关文章

  1. return ajax 把ajax链式操作 简易封装

    成功就是done,失败就是fail

  2. 面localStorage用作数据缓存的简易封装

    面localStorage用作数据缓存的简易封装 最近做了一些前端控件的封装,需要用到数据本地存储,开始采用cookie,发现很容易就超过了cookie的容量限制,于是改用localStorage,但 ...

  3. PHP中对数据库操作的封装

    在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序.这是一件枯燥.费时而且容易出错的功作.其实我们可以用PHP中的类来实现对数据库操作的封装,从而使 ...

  4. c#读写共享内存操作函数封装

    原文 c#读写共享内存操作函数封装 c#共享内存操作相对c++共享内存操作来说原理是一样,但是c#会显得有点复杂. 现把昨天封装的读写共享内存封装的函数记录下来,一方面希望给需要这块的有点帮助,另一方 ...

  5. C# .NET更智能的数据库操作的封装

    前述: 对数据库操作的封装,相信网络上已经有一大堆,ORM框架,或者是.NET本身的EF,都很好的支持数据库操作.这篇文章是分享自己所思考的,对数据库操作的简单封装.我对于这篇文章,认为被浏览者所关注 ...

  6. 手把手封装数据层之DataUtil数据库操作的封装

    上一篇我们写完了数据库连接的封装 没有看的请移步上一篇关于数据库连接的内容 这次我们讲数据库操作的封装.数据库的操作就是增删改查:心再大一点就可以直接分为查询和其他. 因为查询是有返回对象的,而其他都 ...

  7. Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  8. UITextField的简易封装

    UITextField的简易封装 效果 源码 https://github.com/YouXianMing/UI-Component-Collection 中的 UITextFieldView // ...

  9. AVAudioPlayer简易封装

    AVAudioPlayer简易封装 [说明] AVAudioPlayer简易封装,仅仅支持播放,暂停,停止,暂停时候带有渐隐效果,自己用,没有参考价值. [源码] https://github.com ...

随机推荐

  1. bat初学

    今天在重置某工具软件试用期时(汗,盗版可耻=_=!,鄙视自己一下),实在懒得每次过了试用期再点开注册表,手工删除了,就想着写个脚本执行一下,这里就想起来了bat文件. 首先介绍一下for循环,从百度知 ...

  2. javaSctipt基础

    ===================================== JavaScript 脚本语言===================================== 什么是JavaSc ...

  3. 在mysql数据库中,文章表设计有啥好的思路

    Q: 用mysql设计一张文章表,不知道有啥好的思路! 我是这样的,应为考虑附件和图片,所以我的文章表除了有varchar(1000)的文章内容,还设置了个Bolb接收附件和图片. 我用的是mysql ...

  4. JavaScript面向对象实现

    JavaScript面向对象实现 一:面向对象三大特征 继承,封装,多态! 二:JavaScript自定义对象  创建对象的方式: 方式1,对象初始化器方式: <script type=&quo ...

  5. linux 硬件中断调节

    什么是中断 中断interrupts是指硬件主动的来告诉CPU去做某些事情.比如网卡收到数据后可能主动的告诉CPU来处理自己接受到的数据,键盘有了按键输入后会主动告知CPU来读取输入. 硬件主动的打扰 ...

  6. laravel 邮件

    本文使用qq邮箱 env邮件配置: MAIL_FROM_ADDRESS = 17******92@qq.com MAIL_FROM_NAME = listen~ MAIL_DRIVER=smtp MA ...

  7. 【CV论文阅读】Deep Linear Discriminative Analysis, ICLR, 2016

    DeepLDA 并不是把LDA模型整合到了Deep Network,而是利用LDA来指导模型的训练.从实验结果来看,使用DeepLDA模型最后投影的特征也是很discriminative 的,但是很遗 ...

  8. js程序基础字符串具体

    1.     .charAt()里面写数字 在一般浏览器上相当于方括号  可是由于IE6的存在他就有了用处  由于IE6不兼容方括号 2.     charCodeAt()    和charAt几乎相 ...

  9. 二叉查找树(BST)

    二叉查找树(BST) 二叉查找树(Binary Search Tree)又叫二叉排序树(Binary Sort Tree),它是一种数据结构,支持多种动态集合操作,如 Search.Insert.De ...

  10. 用C# (.NET Core) 实现抽象工厂设计模式

    用C# (.NET Core) 实现抽象工厂设计模式   本文的概念性内容来自深入浅出设计模式一书. 上一篇文章讲了简单工厂和工厂方法设计模式 http://www.cnblogs.com/cgzl/ ...