关于TypeInitializationException的问题

时间:2018-11-16 07:08:12

标签: c# exception types static initialization

我注意到一些我不太了解的东西。我有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:我知道如何解决这个问题,因此不需要代码,我只想比现在更好地理解这个问题。

0 个答案:

没有答案