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

    转: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;
            }
  • 相关阅读:
    读后感之—寒门学子重要选择-程序员
    架构中的分而治之
    如何从码农进化到项目管理者
    饿了么架构
    简单理解支付宝和蚂蚁花呗的架构
    架构小谈之美团外卖
    漫谈架构总结之1500
    平台基本信息项目目标文档
    第六学期每周总结-第三周
    质量管理之可用性战术分析
  • 原文地址:https://www.cnblogs.com/ShoneH/p/4704684.html
Copyright © 2011-2022 走看看