c# – 静态ConfigurationManager访问类操作

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

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

  public static string Version = ConfigurationManager.AppSettings["Version"];
}

我相信如果我想在将来更改密钥,这将为我提供一个更改应用程序设置中密钥的中心位置,并为我的应用程序中的所有配置设置提供intellisense.

我的问题是这将如何运作,因为我不确定静电是如何工作的.我希望第一次访问其中一个属性时,所有属性都将从配置中读取并放入内存中,然后所有后续命中只会转到内存而不是查看配置.不幸的是,这意味着对配置的运行时更改不会生效.我还认为可能只会加载我正在查看的属性,或者每次访问任何属性时都会加载它们.

有谁知道从配置中读取静态属性的组合会如何表现?

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

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

任何时候你访问变量后,它将从内存中提取值.

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

点赞