zoukankan      html  css  js  c++  java
  • 对获取config文件的appSettings节点简单封装

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

          直接贴代码:

         

     1 /// <summary>
     2         /// 获取AppSetting里面的内容
     3         /// </summary>
     4         /// <typeparam name="T"></typeparam>
     5         /// <param name="defaultValue">The default value.</param>
     6         /// <param name="key">The key.</param>
     7         /// <returns></returns>
     8         public static T GetAppSettingValue<T>(T defaultValue, string key)
     9         {
    10             string value = ConfigurationManager.AppSettings[key];
    11             if (!string.IsNullOrEmpty(value))
    12             {
    13                 try
    14                 {
    15                     defaultValue = (T)Convert.ChangeType(value, typeof(T));
    16                 }
    17                 catch
    18                 {
    19                 }
    20             }
    21             return defaultValue;
    22         }
    23 
    24         /// <summary>
    25         /// 获取指定的Config文件的AppSetting里面的指定键值对应的value值
    26         /// </summary>
    27         /// <typeparam name="T"></typeparam>
    28         /// <param name="defaultValue">The default value.</param>
    29         /// <param name="key">The key.</param>
    30         /// <param name="file">The file.</param>
    31         /// <returns></returns>
    32         public static T GetAppSettingValue<T>(T defaultValue, string key, string file)
    33         {
    34             var map = new ExeConfigurationFileMap
    35             {
    36                 ExeConfigFilename = file
    37             };
    38             Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
    39             string value = config.AppSettings.Settings[key].Value;
    40 
    41             if (!string.IsNullOrEmpty(value))
    42             {
    43                 try
    44                 {
    45                     defaultValue = (T)Convert.ChangeType(value, typeof(T));
    46                 }
    47                 catch
    48                 {
    49                 }
    50             }
    51             return defaultValue;
    52         }
  • 相关阅读:
    redis命令
    eclipse error pages 打红X的解决方法
    探究adroid活动
    Javascript基本算法演练 Seek and Destroy
    c语言结构体排序示例
    android studio 环境配置
    git学习
    栈用于2进制转换10进制
    html和js
    js
  • 原文地址:https://www.cnblogs.com/marvin/p/EfficiencyAppSetting.html
Copyright © 2011-2022 走看看