• AppConfigHelper 武胜


    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Text;
    using log4net;

    namespace xt {
        public class AppConfigHelper {
            private static ILog log = LogManager.GetLogger(typeof (AppConfigHelper));
            
            public static int? Get(string key, int? defaultValue) {
                string s = ConfigurationManager.AppSettings[key];
                if (string.IsNullOrEmpty(s)) {
                    log.WarnFormat("The key {1} is not configured, using default: {0}", defaultValue, key);
                } else {
                    int v;
                    if (!int.TryParse(s, out v)) {
                        log.WarnFormat("The key {1} is not properly configured, using default: {0}", defaultValue, key);
                    } else {
                        defaultValue = v;
                        log.InfoFormat("Get: {0}={1}", key, defaultValue);
                    }
                }
                return defaultValue;
            }
            
            public static bool? Get(string key, bool? defaultValue) {
                string s = ConfigurationManager.AppSettings[key];
                if (string.IsNullOrEmpty(s)) {
                    log.WarnFormat("The key {1} is not configured, using default: {0}", defaultValue, key);
                } else {
                    bool v;
                    if (!bool.TryParse(s, out v)) {
                        log.WarnFormat("The key {1} is not properly configured, using default: {0}", defaultValue, key);
                    } else {
                        defaultValue = v;
                        log.InfoFormat("Get: {0}={1}", key, defaultValue);
                    }
                }
                return defaultValue;
            }

            public static T GetEnum<T>(string key, T defaultValue) {
                string s = ConfigurationManager.AppSettings[key];
                if (string.IsNullOrEmpty(s)) {
                    log.WarnFormat("The key {1} is not configured, using default: {0}", defaultValue, key);
                    return defaultValue;
                } else {
                    T v = (T) Enum.Parse(typeof (T), s);
                    log.InfoFormat("Get: {0}={1}", key, defaultValue);
                    return v;
                }
            }
            
            public static string Get(string key, string defaultValue) {
                string s = ConfigurationManager.AppSettings[key];
                if (string.IsNullOrEmpty(s)) {
                    log.WarnFormat("The key {1} is not configured, using default: {0}", defaultValue, key);
                    return defaultValue;
                }
                log.InfoFormat("Get: {0}={1}", key, s);
                return s;
            }

            public static DateTime Get(string key, DateTime defaultValue) {
                string s = ConfigurationManager.AppSettings[key];
                if (string.IsNullOrEmpty(s)) {
                    log.WarnFormat("The key {1} is not configured, using default: {0}", defaultValue, key);
                    return defaultValue;
                }
                DateTime result;
                if(!DateTime.TryParse(s, out result)) {
                    log.WarnFormat("The key {0} is not properly configured, using default: {1} isntead of {3}", key, defaultValue, s);
                    return defaultValue;
                }
                log.InfoFormat("Get: {0}={1}", key, s);
                return result;
            }

            public static TimeSpan Get(string key, TimeSpan defaultValue) {
                string s = ConfigurationManager.AppSettings[key];
                if (string.IsNullOrEmpty(s)) {
                    log.WarnFormat("The key {1} is not configured, using default: {0}", defaultValue, key);
                    return defaultValue;
                }
                TimeSpan result;
                if (!TimeSpan.TryParse(s, out result)) {
                    log.WarnFormat("The key {0} is not properly configured, using default: {1} isntead of {3}", key, defaultValue, s);
                    return defaultValue;
                }
                log.InfoFormat("Get: {0}={1}", key, s);
                return result;
            }
        }

  • 相关阅读:
    11.14 mii-tool:管理网络接口的状态
    11.15 dmidecode:查询系统硬件信息
    11.11 ntsysv:管理开机服务
    HDU 2476 String painter 刷字符串(区间DP)
    HDU 1085 Holding Bin-Laden Captive! 活捉本拉登(普通型母函数)
    母函数的应用
    HDU 1028 Ignatius and the Princess III伊格和公主III(AC代码)母函数
    HDU 1059 Dividing 分配(多重背包,母函数)
    HDU 2955 Robberies抢劫案(01背包,变形)
    HDU 1011 Starship Troopers星河战队(树形dp)
  • 原文地址:https://www.cnblogs.com/zeroone/p/2538658.html
Copyright © 2020-2023  润新知