ในขณะที่ฉันพบวิธีที่ดีที่สุดในการเข้าถึงตัวแปรการตั้งค่าแอปพลิเคชันอย่างเป็นระบบโดยการทำให้คลาส wrapper ทับ System.Configuration ดังนี้
public class BaseConfiguration
{
protected static object GetAppSetting(Type expectedType, string key)
{
string value = ConfigurationManager.AppSettings.Get(key);
try
{
if (expectedType == typeof(int))
return int.Parse(value);
if (expectedType == typeof(string))
return value;
throw new Exception("Type not supported.");
}
catch (Exception ex)
{
throw new Exception(string.Format("Config key:{0} was expected to be of type {1} but was not.",
key, expectedType), ex);
}
}
}
ตอนนี้เราสามารถเข้าถึงตัวแปรการตั้งค่าที่จำเป็นด้วยชื่อฮาร์ดโค้ดโดยใช้คลาสอื่นดังต่อไปนี้:
public class ConfigurationSettings:BaseConfiguration
{
#region App setting
public static string ApplicationName
{
get { return (string)GetAppSetting(typeof(string), "ApplicationName"); }
}
public static string MailBccAddress
{
get { return (string)GetAppSetting(typeof(string), "MailBccAddress"); }
}
public static string DefaultConnection
{
get { return (string)GetAppSetting(typeof(string), "DefaultConnection"); }
}
#endregion App setting
#region global setting
#endregion global setting
}