我很好奇web.config是如何加载到应用程序中的,是对web.config中实际解析web.config文件的值的任何引用,或者在应用程序启动时它将值加载到单例或其他内容中?
我想到了这一点,因为我想在global.asax.cs中根据请求检查web.config中的值:
protected void Application_BeginRequest(object sender, EventArgs e)
{
if( ConfigurationManager.AppSettings["abc"] != null)
{
}
}
答案 0 :(得分:4)
当应用程序首次收到请求时,将解析配置文件并加载其设置。然后缓存这些设置,以便任何后续调用都不需要重新解析配置文件。这就是为什么当配置文件被更改时,应用程序重新启动并再次重新编译。
http://msdn.microsoft.com/en-us/library/ms178685.aspx#calculating_configuration_settings_at_runtime
答案 1 :(得分:3)
在应用程序启动期间,配置会反序列化为相应的ConfigurationSection
类型。
这些通常使用只读属性实现,因此它们确实可以在单例中使用。