以下のように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
}