ASP.NET应用程序变量与从ConfigurationSettings.AppSettings读取

时间:2011-04-29 21:32:39

标签: .net asp.net performance global-asax

Application Variable Vs Web.Config Variable发布了一个类似的问题,但我的情况略有不同,我不相信那里的答案。

所以,如果我在我的global.asax中定义一个应用程序变量,如下所示:

public class Global : System.Web.HttpApplication
{    
   public static readonly string X =  ConfigurationSettings.AppSettings["XsltExternal"];
   // rest of the code here
}

不应该执行此操作

string Y = Global.X;

快于

string Y = ConfigurationSettings.AppSettings["XsltExternal"];

因为避免哈希表查找(假设ASP.Net存储web.config设置的方式)?我的应用程序使用大量的配置设置,并在整个页面循环中检查它,所以我希望我能利用我可以保存的每一个ms。

任何人的想法?

PS:我的初始简易测试页ANTS分析器测试显示读取时间从0.017毫秒下降到.002毫秒。

1 个答案:

答案 0 :(得分:2)

我会说是的,它更快,但我会尽量保持Global类的清洁。在我的实现中,我通常将所有配置项放在具有静态构造函数的单独类中,例如:

public class Constants
{
    public static string PayPalSeller;
    public static string PayPalUrl;
    public static string PayPalPDTKey;
    public static string RpxTokenUrl;
    public static string VirtualAppFolder;
    static Constants()
    { 
        PayPalSeller = ConfigurationManager.AppSettings["PayPalSeller"];
        PayPalUrl = ConfigurationManager.AppSettings["PayPalUrl"];
        PayPalPDTKey = ConfigurationManager.AppSettings["PayPalPDTKey"];
        RpxTokenUrl = ConfigurationManager.AppSettings["RpxTokenUrl"];
    }
 }

要使用它,当然你会去:

Constants.PayPalSeller

希望这有帮助, -covo