Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应用程序启动后,如何从web.config读取值?_C#_Asp.net_Web Config - Fatal编程技术网

C# 应用程序启动后,如何从web.config读取值?

C# 应用程序启动后,如何从web.config读取值?,c#,asp.net,web-config,C#,Asp.net,Web Config,我很好奇web.config是如何加载到应用程序中的,对web.config中的值的任何引用实际上是在解析web.config文件,还是在应用程序启动时将这些值加载到一个单例或其他文件中 当我想在global.asax.cs中按请求检查web.config中的值时,我想到了这一点: protected void Application_BeginRequest(object sender, EventArgs e) { if( ConfigurationManager.AppSetting

我很好奇web.config是如何加载到应用程序中的,对web.config中的值的任何引用实际上是在解析web.config文件,还是在应用程序启动时将这些值加载到一个单例或其他文件中

当我想在global.asax.cs中按请求检查web.config中的值时,我想到了这一点:

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


    }
}

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


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

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


也不是,我的意思是,它们是生成的配置节类型类,它们非常快,对吗?i、 e.没有为每次查找查找配置文件?@user1361315-它们不会生成。它们已经存在-实例在启动时填充,这就是查询。因此,文件在启动时只读取一次。