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]); } } }