我注意到一些我不太了解的东西。我有ConfigurationProvider
类,它从数据库中加载配置值,然后是Configuration
类,用于解析它们并使我的应用程序的其余部分可以访问它们。 (实际上,我解析xml
的配置,但例如,我将其替换为long
)
public class ConfigurationProvider
{
public static ConfigurationProvider Provider { get; } = new ConfigurationProvider();
public string GetParameter()
{
// gets configuration parameter from database
}
}
public class Configuration
{
public static long Parameter { get; } = long.Parse(ConfigurationProvider.Provider.Parameter);
}
如果访问TypeInitializationException
时会抛出数据库Configuration.Parameter;
中没有有效值的情况,那么当我更改数据库中的值并再次访问Configuration.Parameter;
时,我仍然会得到完全相同的异常
所以我的问题是为什么会这样?您能指出一些有关此的文档吗?据我了解,public static long Parameter { get; }
仅应在第一次访问类Configuration
时初始化一次。但是异常使我感到此初始化失败,应再次执行。还是这意味着Parameter
实际上已经初始化并且现在引用了给定的异常?
ps:我知道如何解决这个问题,因此不需要代码,我只想比现在更好地理解这个问题。