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 ...
随机推荐
- Linux下汇编语言学习笔记33 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- SQLSERVER数据库管理员的专用连接DAC
出处: http://www.cnblogs.com/lyhabc/archive/2012/09/23/2698702.html DAC:Dedicated Admin Connection 当SQ ...
- 【进击后端】ubuntu 快速安装node mongodb express
安装软件:node,mongo,express 1.apt install node 2.node -v 3.apt install mongodb 4.mongo -version 5.apt in ...
- 搭建ELK收集PHP的日志
架构: filebeat --> redis -->logstash --> es --> kibana 每个客户端需要安装filebeat收集PHP日志 filebeat把收 ...
- Java这样学,Offer随便拿,学习方法和面试经验分享
Java这样学,Offer随便拿,学习方法和面试经验分享 学习中:https://mp.weixin.qq.com/s/iSutLzqCiPMWwm_Rm_2oPw
- 改變iTunes備份路徑
*** 在任意分區建立文件夾用來移動iTunes原有備份 *** 例如:move"c:\user\vhd\appdata\roaming\apple computer"全部到&qu ...
- C#.NET 如何打开高版本的sln文件
我用VS2008去打开2010版本的解决方案,提示如下 其实我可以直接打开这个csproj文件并运行 关闭之后就会提示是否创建一个新的 sln文件
- HDU 3280 Equal Sum Partitions(二分查找)
Equal Sum Partitions Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- node-load module
javscript :脚本建共享全局名称空间(全局污染). node:实现CommonJS(公共)模块标准. Node加载模块,有两种方式: 1.通过名称 除非是核心模块,否则被引用的模块最后都会映射 ...
- Android帧动画实现,防OOM,比原生动画集节约超过十倍的资源
2015年项目接到一个需求,实现一个向导动画,这个动画一共六十张图片,当时使用的是全志A33的开发(512的内存),通过使用Android的动画集实现,效果特别卡顿,然后想到这样的方式来实现,效果非常 ...