静态 ConfigurationManager 访问类操作

4

我考虑创建一个静态类来处理我的Web.config应用程序设置访问。比如,它会像这样:

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

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

我认为这会给我一个中心位置来更改应用程序设置中的密钥,如果将来想要更改一个密钥,它会为我提供所有配置设置的智能感知。我的问题是,我不确定静态在底层如何工作。我希望第一次访问属性时,所有属性都将从配置文件中读取并放置在内存中,所有后续的访问都将只是在内存中查找而不是查看配置文件。不幸的是,这意味着运行时对配置文件的更改将不会生效。我还认为可能只加载我正在查看的属性,或者每次访问任何属性时都会全部加载。有人知道具有从配置文件读取静态属性的组合将在底层如何运作吗?
1个回答

2

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

因为您选择了静态类,所以这些值将在调用静态构造函数时通过赋值设置一次。这将在第一次使用该类时发生。

之后每次访问变量时,它都会从内存中提取值。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接