6

我很好奇 web.config 是如何加载到应用程序中的,对 web.config 中的值的任何引用是否实际上解析了 web.config 文件,或者在应用程序启动时它是否将值加载到单例中?

我想到了这一点,因为我想在 global.asax.cs 中根据每个请求检查 web.config 中的值:

protected void Application_BeginRequest(object sender, EventArgs e)
{
   if( ConfigurationManager.AppSettings["abc"] != null)
   {


    }
}
4

2 回答 2

5

当应用程序第一次收到请求时,会解析配置文件并加载其设置。然后缓存这些设置,因此任何后续调用都不需要重新解析配置文件。这就是为什么当配置文件更改时,应用程序会重新启动并再次重新编译。

http://msdn.microsoft.com/en-us/library/ms178685.aspx#calculating_configuration_settings_at_runtime

于 2013-03-08T20:29:11.050 回答
3

配置在应用程序启动期间被反序列化为相应的ConfigurationSection类型。

这些通常使用只读属性实现,因此它们确实可以在单例中使用。

于 2013-03-08T20:26:36.983 回答