在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毫秒。
答案 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