由于读写配置文件的次数比较频繁,而且拥有众多的类库,到最后,直接被各种各样的类库烦死。

顺手封一个简单,实用的。主要功能:

  • 读写AppSetting
  • 读取连接字符串
  • 读取自定义配置节
using System;
using System.Configuration;
using System.Web.Configuration; namespace HPWorkUtility
{
/// <summary>
/// 配置文件读写器
/// </summary>
public class ConfigReaderWriter
{
/// <summary>
/// 获取指定的AppSetting
/// </summary>
/// <param name="key">键的名称</param>
/// <returns>键值</returns>
public static string GetAppSetting(string key)
{
return ConfigurationManager.AppSettings[key];
} /// <summary>
/// 获取指定的AppSetting
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="key">键的名称</param>
/// <returns>键值</returns>
public static T GetAppSetting<T>(string key)
{
var val = GetAppSetting(key);
return (T)Convert.ChangeType(val, typeof(T));
} /// <summary>
/// 设置AppSetting节的值
/// </summary>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <param name="isWebConfig">是否是WebConfig文件</param>
public static void SetAppSetting(string key, string value, bool isWebConfig)
{
//增加的内容写在appSettings段下 <add key="RegCode" value="0"/>
Configuration config = null;
if (isWebConfig)
{
config = WebConfigurationManager.OpenWebConfiguration("~");
}
else
{
config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
}
if (config.AppSettings.Settings[key] == null)
{
config.AppSettings.Settings.Add(key, value);
}
else
{
config.AppSettings.Settings[key].Value = value;
}
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");//重新加载新的配置文件
} /// <summary>
/// 读取自定义配置节
/// </summary>
/// <param name="sectionName">配置节的名称</param>
/// <returns>配置对象</returns>
public static object GetCustomSection(string sectionName)
{
return ConfigurationManager.GetSection(sectionName);
} /// <summary>
/// 读取自定义配置节
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="sectionName">配置节的名称</param>
/// <returns>配置对象</returns>
public static T GetCustomSection<T>(string sectionName) where T : class
{
return GetCustomSection(sectionName) as T;
} /// <summary>
/// 读取连接字符串
/// </summary>
/// <param name="name">名称</param>
/// <returns>连接字符串</returns>
public static string GetConnectionString(string name)
{
return GetConnectionStringSetting(name).ConnectionString;
} /// <summary>
/// 读取连接字符串设置对象
/// </summary>
/// <param name="name">名称</param>
/// <returns>设置对象</returns>
public static ConnectionStringSettings GetConnectionStringSetting(string name)
{
return ConfigurationManager.ConnectionStrings[name];
}
}
}

Lib中的,将会持续改进和更新~

LIB 配置文件读写器的更多相关文章

  1. C++ MFC实现基于RFID读写器的上位机软件

    C++ MFC实现基于RFID读写器的上位机软件 该博客涉及的完整工程托管在https://github.com/Wsine/UpperMonitor,觉得好请给个Star (/▽\=) 运行和测试环 ...

  2. 文件读写器FileRW 1.0发布

    这个软件未发布前,当年被计算机杂志报道过. FileRW 文件读写器 1.0功能介绍:1.可以以各种方式读普通文件和I/O文件.2.可以以各种方式写文件.3.可以配置文件的分享读写方式.4.可以指定文 ...

  3. .NET平台开源项目速览(1)SharpConfig配置文件读写组件

    在.NET平台日常开发中,读取配置文件是一个很常见的需求.以前都是使用System.Configuration.ConfigurationSettings来操作,这个说实话,搞起来比较费劲.不知道大家 ...

  4. 纯C#的ini格式配置文件读写

    虽然C#里都是添加app.config 并且访问也很方便 ,有时候还是不习惯用他.那么我们来做个仿C++下的那种ini配置文件读写吧,其他人写的都是调用非托管kernel32.dll.我也用过 但是感 ...

  5. Mifare系列6-射频卡与读写器的通信(转)

    文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38085415 1. 复位应答(Answer to request) 读写器呼叫磁 ...

  6. RFID 读写器 Reader Writer Cloner

    RFID读写器的工作原理 RFID的数据采集以读写器为主导,RFID读写器是一种通过无线通信,实现对标签识别和内存数据的读出和写入操作的装置. 读写器又称为阅读器或读头(Reader).查询器(Int ...

  7. MIFARE系列6《射频卡与读写器的通讯》

    1. 复位应答(Answer to request) 读写器呼叫磁场内的卡片,卡片对呼叫做出应答.对刚进入磁场得到电复位处于休闲状态的卡片,卡请求(REQA,0x26):对于已进行过读写操作并进入休眠 ...

  8. IC卡接口芯片TDA8007的读写器设计

    摘要:阐述T=0传输协议,给出IC卡读写器中使用的IC卡APDU指令流程和原理框图:重点介绍其中的IC卡接口芯片Philips的TDA8007,给出通过TDA8007对CPU IC卡上下电过程.具体程 ...

  9. NFC应用(二)读写器模式

    NFC第二种应用场境就是所谓的读写器模式.既然有卡,当然就会有读写器,这两种模式是配合在一起使用的.两个卡放一起不能通信,两个读写器模式的设备也不能通信. NFC读写器一般支持以下一种或多种协议:Mi ...

随机推荐

  1. FineUI第五天---按钮控件

    按钮控件 <x:Button runat="server" ID="按下" Text="按下"></x:Button> ...

  2. [BZOJ3624][Apio2008]免费道路

    [BZOJ3624][Apio2008]免费道路 试题描述 输入 输出 输入示例 输出示例 数据规模及约定 见“输入”. 题解 第一步,先尽量加入 c = 1 的边,若未形成一个连通块,则得到必须加入 ...

  3. openstack 前期准备工作

    OS 是 centos6.5_X86_64 一.vmware 虚拟机 准备两台机虚拟机即可 二.导入第三方安装源 [root@openstack ~]# rpm -Uvh http://dl.fedo ...

  4. django-cms 代码研究(二)bugs?

    djangocms集成到现有项目中后,发现了几个问题: 1. 现有项目的url匹配失效,下面requests请求被交给djangocms处理了 url(r'^admin/', include(admi ...

  5. 每天一个linux命令day2【ss命令】

    ss是Socket Statistics的缩写.顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信 ...

  6. OpenStack

    [官网]http://www.openstack.org/ [视频教程1]http://blog.csdn.net/u010973404/article/details/16841229 [视频教程2 ...

  7. 利用cocostudio库函数 实现左右滑动的背包栏UI (cocos2d-x 2.2.0)

    .h #ifndef __COMMON_COMPONENTS__ #define __COMMON_COMPONENTS__ #include "cocos2d.h" #inclu ...

  8. 转MYSQL学习(五) 索引

    索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型. 根据存储引擎定义每个表的最大索引数和最大索引长度.所有存储引擎支持每个表至少16个索引,总 ...

  9. Android 模拟器genymotion安装,eclipse 插件

    genymotion是一款号称速度最快性能最好的android模拟器,它基于Oracle VM VirtualBox.支持GPS.重力感应.光.温度等诸多传感器:支持OpenGL 3D加速:电池电量模 ...

  10. 利用VMware虚拟机(Android-x86 2.2)和eclipse,调试安卓代码

    下载 android-x86-2.2-generic.iso (这里包含eth0)  http://www.android-x86.org/download XP32位 只能使用 VMware Wor ...