初始化静态变量时抛出奇怪的异常

时间:2016-03-18 11:59:28

标签: c# wpf static argumentexception

我最近有一个非常奇怪的System.ArgumentException

以下代码位于我的WPF应用程序的MainWindow构造函数

CodeDefinitions.DEFAULT_AVALIABLE = (() => { return true; });

但是每次运行应用程序时,这都是我得到的:System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll

所以在哪里出错了,所以我将这行放在try / catch块中,如下所示:

try
{
    CodeDefinitions.DEFAULT_AVALIABLE = (() => { return true; });        
}
catch()
{

}

在catch' {'中设置一个断点,这就是我得到的$例外:

[System.TypeInitializationException] {"The type initializer for 'ComunicadorSerial.Classes.Utils.CodeDefinitions' threw an exception."}

那什么也没告诉我,所以我看了_innerException

_innerException {"An item with the same key has already been added."}   System.Exception {System.ArgumentException}

据我所知,当使用词典时,这个除了抛出,但最奇怪的是DEFAULT_AVALIABLEFunc<bool>

internal static Func<bool> DEFAULT_AVALIABLE;

有谁知道这件事?这看起来很愚蠢,但我无法弄清楚。

提前致谢!

1 个答案:

答案 0 :(得分:4)

如果先前未调用静态构造函数,则初始化静态变量将调用静态构造函数。

如果没有看到实际的代码,就不可能告诉我什么是错的,但检查你的静态构造函数和其他静态成员是否有任何可能引发此异常的内容。