zoukankan      html  css  js  c++  java
  • 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;
            }
        }

  • 相关阅读:
    [Swift]LeetCode930. 和相同的二元子数组 | Binary Subarrays With Sum
    [Swift]LeetCode929. 独特的电子邮件地址 | Unique Email Addresses
    [Swift实际操作]八、实用进阶-(10)使用Swift创建一个二叉树BinaryTreeNode
    [Swift]LeetCode5. 最长回文子串 | Longest Palindromic Substring
    [Swift]LeetCode4. 两个排序数组的中位数 | Median of Two Sorted Arrays
    [Swift]LeetCode3. 无重复字符的最长子串 | Longest Substring Without Repeating Characters
    [Swift]LeetCode913.猫与老鼠 | Cat and Mouse
    [Swift]LeetCode916.单词子集 | Word Subsets
    [Swift]LeetCode915.将分区数组分成不相交的间隔 | Partition Array into Disjoint Intervals
    OpenJDK源码研究笔记(十六):在Java中使用JavaScript脚本语言
  • 原文地址:https://www.cnblogs.com/zeroone/p/2538658.html
Copyright © 2011-2022 走看看