C#2.0:AppSettingsの値を数値で保管するディクショナリ

App.ConfigのAppSettingsで数値に変換できるものは数値に変換して辞書にしておく。
.Net Framework 2.0用
ConfigurationManager.AppSetting[key]で文字列は取得できるが、
文字列を数値に変換する必要があるので、それを簡潔に行うためのクラス。
Booleanバージョンがあってもいいかもしれない。

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

namespace ComboAndTextBoxBinder
{
    // App.ConfigのAppSettingsでDecimalに変換できるものをDecimalのDictionaryに保管しておく。
    public class AppSettingNumDic
    {
        Dictionary<string, decimal> dic = new Dictionary<string, decimal>();

        // decimalの範囲は10^28のオーダーなので、それを超える値は格納できない。Int32.MaxValueもだめ。
        public AppSettingNumDic()
        {
            foreach (string key in ConfigurationManager.AppSettings.AllKeys)
            {
                string value = ConfigurationManager.AppSettings[key];

                decimal valNum = -1;
                if (Decimal.TryParse(value, out valNum) == true)
                {
                    this.dic.Add(key, valNum);
                }
            }
        }

        public bool Exists(string key)
        {
            return this.dic.ContainsKey(key);
        }

        public int this[string key]
        {
            get { return Convert.ToInt32(this.dic[key]); }
        }

        public long GetLong(string key)
        {
            return Convert.ToInt64(this.dic[key]);
        }

        public decimal GetDecimal(string key)
        {
            return this.dic[key];
        }

        // Doubleは有効桁数が15-16桁なので小数点以下が切り捨てられる可能性がある。
        public double GetDouble(string key)
        {
            return Convert.ToDouble(this.dic[key]);
        }
    }
}