转: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. Mob短信验证的具体使用

    原文著作权地址:http://www.jb51.net/article/84946.htm demo地址:http://git.oschina.net/lizhanqi/MobSMSDemo 一.前言 ...

  2. iOS-OC-基础-NSString常用方法

    NSString常用方法和属性 //compare 比较字符串升序.相同还是降序,比较原理:首先比较第一个字符(ASCII码比较),如果是升序就为升序,如果相同比较下一个字符... NSString ...

  3. 创建兼容的XHR对象

    function createXHR () {//创建XMLHttpRequest对象 var xhr=null; if(window.XMLHttpRequest){ createXHR=creat ...

  4. uWSGI

    参考:http://perlmaven.com/deploying-pyton-with-uwsgi-on-ubuntu-13-10

  5. nginx+keepalived+tomcat之tomcat性能调优

    body{ font-family: Nyala; font-size: 10.5pt; line-height: 1.5;}html, body{ color: ; background-color ...

  6. 负载均衡集群之LVS持久链接

    原理--> 通过构建一个hash表,利用CIP与RS的对应关系,来保持来自一个CIP的各种服务都走同一个RS 目的--> 保持持久链接的同时,将多个服务合并起来,例如http和https ...

  7. 关于tuple的只读特性

    a = (1,3,[5,4,1]) a[2][1] = 2 print(a) 结果是:(1,3,[5,2,1]) 可以看到,在这里tuple的内容被修改了. 原因就是tuple的“只读”属性是指tup ...

  8. Octorber 21st

    Octorber 21st Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  9. real server 的一个启动脚本例子

    real server 的vip 启动脚本 #!/bin/bash #chkconfig: #description: real server init script VIP=192.168.80.8 ...

  10. mysql 性能分析套件

    #!/usr/local/python3./bin/python3. #!coding:utf- #################################### #目地:用于诊断mysql性 ...