Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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# 静态ConfigurationManager访问类操作_C#_.net_Class_Static_Configurationmanager - Fatal编程技术网

C# 静态ConfigurationManager访问类操作

C# 静态ConfigurationManager访问类操作,c#,.net,class,static,configurationmanager,C#,.net,Class,Static,Configurationmanager,我正在考虑创建一个静态类来处理我的所有Web.config appSettings访问。例如,它看起来是这样的: public static class ConfigManager { public static string Timeout = ConfigurationManager.AppSettings["Timeout"]; public static string Version = ConfigurationManager.AppSettings["Version"];

我正在考虑创建一个静态类来处理我的所有Web.config appSettings访问。例如,它看起来是这样的:

public static class ConfigManager
{
  public static string Timeout = ConfigurationManager.AppSettings["Timeout"];

  public static string Version = ConfigurationManager.AppSettings["Version"];
}
我相信,如果我将来想更改应用程序设置中的键,这将为我提供一个更改应用程序设置中键的中心位置,并为我的应用程序中的所有配置设置提供intellisense

我的问题是这将如何运作,因为我不知道如何静态引擎盖下的工作。我的希望是,当我第一次访问其中一个属性时,所有属性都将从配置中读取并放在内存中,然后所有后续的点击都将进入内存,而不是查看配置。不幸的是,这意味着对配置的运行时更改不会生效。我还认为可能只有我正在查看的属性才会被加载,或者每次我访问任何属性时,它们都会被加载


有人知道从configs读取静态属性的组合在后台的行为吗?

静态意味着内存中只有该类或变量的一个实例

由于您选择了静态类,因此在调用静态构造函数时,赋值将设置一次值。这将在第一次使用该类时发生

在此之后,无论何时访问变量,它都将从内存中提取值

如果您担心能够在运行时更改值,那么可以使用一个属性,然后实现一个缓存策略,在给定的时间间隔刷新该属性