AppConfig 操作简易封装
- 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);
- }
- }
- }
- }
AppConfig 操作简易封装的更多相关文章
- return ajax 把ajax链式操作 简易封装
成功就是done,失败就是fail
- 面localStorage用作数据缓存的简易封装
面localStorage用作数据缓存的简易封装 最近做了一些前端控件的封装,需要用到数据本地存储,开始采用cookie,发现很容易就超过了cookie的容量限制,于是改用localStorage,但 ...
- PHP中对数据库操作的封装
在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序.这是一件枯燥.费时而且容易出错的功作.其实我们可以用PHP中的类来实现对数据库操作的封装,从而使 ...
- c#读写共享内存操作函数封装
原文 c#读写共享内存操作函数封装 c#共享内存操作相对c++共享内存操作来说原理是一样,但是c#会显得有点复杂. 现把昨天封装的读写共享内存封装的函数记录下来,一方面希望给需要这块的有点帮助,另一方 ...
- C# .NET更智能的数据库操作的封装
前述: 对数据库操作的封装,相信网络上已经有一大堆,ORM框架,或者是.NET本身的EF,都很好的支持数据库操作.这篇文章是分享自己所思考的,对数据库操作的简单封装.我对于这篇文章,认为被浏览者所关注 ...
- 手把手封装数据层之DataUtil数据库操作的封装
上一篇我们写完了数据库连接的封装 没有看的请移步上一篇关于数据库连接的内容 这次我们讲数据库操作的封装.数据库的操作就是增删改查:心再大一点就可以直接分为查询和其他. 因为查询是有返回对象的,而其他都 ...
- 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 ...
- UITextField的简易封装
UITextField的简易封装 效果 源码 https://github.com/YouXianMing/UI-Component-Collection 中的 UITextFieldView // ...
- AVAudioPlayer简易封装
AVAudioPlayer简易封装 [说明] AVAudioPlayer简易封装,仅仅支持播放,暂停,停止,暂停时候带有渐隐效果,自己用,没有参考价值. [源码] https://github.com ...
随机推荐
- bat初学
今天在重置某工具软件试用期时(汗,盗版可耻=_=!,鄙视自己一下),实在懒得每次过了试用期再点开注册表,手工删除了,就想着写个脚本执行一下,这里就想起来了bat文件. 首先介绍一下for循环,从百度知 ...
- javaSctipt基础
===================================== JavaScript 脚本语言===================================== 什么是JavaSc ...
- 在mysql数据库中,文章表设计有啥好的思路
Q: 用mysql设计一张文章表,不知道有啥好的思路! 我是这样的,应为考虑附件和图片,所以我的文章表除了有varchar(1000)的文章内容,还设置了个Bolb接收附件和图片. 我用的是mysql ...
- JavaScript面向对象实现
JavaScript面向对象实现 一:面向对象三大特征 继承,封装,多态! 二:JavaScript自定义对象 创建对象的方式: 方式1,对象初始化器方式: <script type=&quo ...
- linux 硬件中断调节
什么是中断 中断interrupts是指硬件主动的来告诉CPU去做某些事情.比如网卡收到数据后可能主动的告诉CPU来处理自己接受到的数据,键盘有了按键输入后会主动告知CPU来读取输入. 硬件主动的打扰 ...
- laravel 邮件
本文使用qq邮箱 env邮件配置: MAIL_FROM_ADDRESS = 17******92@qq.com MAIL_FROM_NAME = listen~ MAIL_DRIVER=smtp MA ...
- 【CV论文阅读】Deep Linear Discriminative Analysis, ICLR, 2016
DeepLDA 并不是把LDA模型整合到了Deep Network,而是利用LDA来指导模型的训练.从实验结果来看,使用DeepLDA模型最后投影的特征也是很discriminative 的,但是很遗 ...
- js程序基础字符串具体
1. .charAt()里面写数字 在一般浏览器上相当于方括号 可是由于IE6的存在他就有了用处 由于IE6不兼容方括号 2. charCodeAt() 和charAt几乎相 ...
- 二叉查找树(BST)
二叉查找树(BST) 二叉查找树(Binary Search Tree)又叫二叉排序树(Binary Sort Tree),它是一种数据结构,支持多种动态集合操作,如 Search.Insert.De ...
- 用C# (.NET Core) 实现抽象工厂设计模式
用C# (.NET Core) 实现抽象工厂设计模式 本文的概念性内容来自深入浅出设计模式一书. 上一篇文章讲了简单工厂和工厂方法设计模式 http://www.cnblogs.com/cgzl/ ...