转:http://www.cnblogs.com/marvin/archive/2011/07/29/EfficiencyAppSetting.html

C#的开发中,无论你是winform开发还是webform开发,都需要通过config文件来配置一些信息,因此我们也经常需要获取其中的 appSettings节点的值。当然,.net已经对访问这个节点做了封装,我们可以很方便的访问该节点。但是,我觉得还是不够满意,因为我需要在获取 不到节点的时候能够返回默认的值,获取的时候能够自动转为我需要的类型,我需要能够随时指定config文件,而不仅仅是默认的web.config文件 或者是*.exe.config文件。尤其最后的那个功能,嘿嘿,别以为这个没有用,有时候,我们是需要共用一个配置文件的。比如你在开发Windows 服务的时候,你不会希望你用界面的那个程序和Windows服务的程序有两个一样的配置文件吧

直接贴代码:

/// <summary>
/// 获取AppSetting里面的内容
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="defaultValue">The default value.</param>
/// <param name="key">The key.</param>
/// <returns></returns>
public static T GetAppSettingValue<T>(T defaultValue, string key)
{
string value = ConfigurationManager.AppSettings[key];
if (!string.IsNullOrEmpty(value))
{
try
{
defaultValue = (T)Convert.ChangeType(value, typeof(T));
}
catch
{
}
}
return defaultValue;
} /// <summary>
/// 获取指定的Config文件的AppSetting里面的指定键值对应的value值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="defaultValue">The default value.</param>
/// <param name="key">The key.</param>
/// <param name="file">The file.</param>
/// <returns></returns>
public static T GetAppSettingValue<T>(T defaultValue, string key, string file)
{
var map = new ExeConfigurationFileMap
{
ExeConfigFilename = file
};
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
string value = config.AppSettings.Settings[key].Value; if (!string.IsNullOrEmpty(value))
{
try
{
defaultValue = (T)Convert.ChangeType(value, typeof(T));
}
catch
{
}
}
return defaultValue;
}

对获取config文件的appSettings节点简单封装的更多相关文章

  1. c# 根据配置文件路径,设置和获取config文件 appSettings 节点值

    /// <summary> /// 获取编译后的主配置文件节点值 /// </summary> /// <param name="key">&l ...

  2. 获取 config文件的节点值

    System.Configuration.ConfigurationManager.AppSettings["followTemplate"];

  3. C# 获取config文件的值

    自定义配置文件帮助类 利用ExeConfigurationFileMap类将自定义配置文件转换为Configuration类进行数据读取 代码很简单,就不做扼要说明 /// <summary&g ...

  4. C# 获取config文件 实体转换

    随着项目的扩展,单独的key,value配置文件已经不能满足需求了 这里需要自定义配置节点,例如 <!--自定义 具体实体类配置问节点信息--> <School Name=" ...

  5. 从Config文件中读取节点的配置信息

    下面是web.config中与本内容有关的细节 <appSettings> <add key="servername" value="www" ...

  6. 关于config文件中AppSettings和ConnectionStrings的用法跟区别(转)

    转自:http://www.cnblogs.com/bindot/archive/2013/03/07/def.html

  7. iOS - 音乐播放器需要获取音乐文件的一些数据信息(封装获取封面图片的类)

    // // AVMetadataInfo.h // AVMetadata // // Created by Wengrp on 15/10/27. // Copyright © 2015年 Wengr ...

  8. winform app.config文件的动态配置

    获取 获取应用程序exe.config文件中  节点value值 /// <summary> /// 功能: 读取应用程序exe.config文件中 /// appSettings节点下 ...

  9. 利用HttpWebRequest模拟表单提交 JQuery 的一个轻量级 Guid 字符串拓展插件. 轻量级Config文件AppSettings节点编辑帮助类

    利用HttpWebRequest模拟表单提交   1 using System; 2 using System.Collections.Specialized; 3 using System.IO; ...

随机推荐

  1. LANMP 一键下载

    下载安装 wget http://dl.wdlinux.cn:5180/lanmp_v2.5.tar.gz tar zxvf lanmp_v2.5.tar.gz sh install.sh 4个可选安 ...

  2. ios 调用相机后 view 下沉问题

    我只加了一句代码 现在不报错了  因为这个问题是随机性的  我也不太明白这个地方是怎么回事   我只是这样子做了  问题不出来了 if ([[[UIDevice currentDevice] syst ...

  3. OC对象:封装、继承、多态的使用举例一

    // 该代码在网上找的视频中的例子,感觉很适合类和对象分不清楚的同学参考,仅供学习分享,谢谢 // 创建一个Pointtest类,用属性x.y表示点的坐标位置,求两点之间的距离,使用两种方法:类方法和 ...

  4. 转:Dictionary<int,string>怎么获取它的值的集合?急!急!急!

    怎么获取Dictionary<int, string>的值?我知道这个是键值对的,我知道可以根据key得到value,但关键是现在连key也不知道啊就是想让这个显示在listbox中,应该 ...

  5. noip2015 提高组day1、day2

    NOIP201505神奇的幻方   试题描述 幻方是一种很神奇的N∗N矩阵:它由数字 1,2,3,……,N∗N构成,且每行.每列及两条对角线上的数字之和都相同.    当N为奇数时,我们可以通过以下方 ...

  6. [android]android开发中的运行错误之:adb.exe

    调试的时候出现一下错误: The connection to adb is down, and a servera error has occured.You must restart adb and ...

  7. Java 一个字符串在另外一个字符串出现次数

    统计一个字符串在另外一个字符串出现次数 代码如下: package me.chunsheng.javatest; import java.util.regex.Matcher; import java ...

  8. Linux中的ln

    在安装了wdcp或在正常使用wdcp后,如有意无意用使用了yum更新系统或安装软件,有时会直接更新安装了yum源里的apache,这时问题就来了打开所有的网站或页面,都是提示Apache欢迎页面 这个 ...

  9. Meteor Shower(POJ 3669)

    Meteor Shower Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12816   Accepted: 3451 De ...

  10. [XMPP]iOS聊天软件学习笔记[四]

    昨天完成了聊天界面,基本功能算告一段落 开发时间:五天(工作时间) 开发工具:xcode6 开发平台:iOS8 XMPP框架:XMPPFramework git clone https://githu ...