创建对象时的TypeInitializationException异常

时间:2011-08-10 20:05:14

标签: c# .net winforms exception

我有一个程序集(.Net 3.5中的类库项目),它有一些引用,如System.ConfigurationSystem.Web。我在Web应用程序上使用它并且工作正常。

现在,我需要引用一个Windows窗体项目,我无法理解发生了什么。当我尝试创建我的类的实例时,它不起作用;

我尝试创建我的程序集的其他实例和那些工作,除了这个特定的类。

有人知道发生了什么吗?

4 个答案:

答案 0 :(得分:69)

当无法初始化类的静态字段时,通常会抛出TypeInitializationException。例如:

class BadClass
{
    private static MyClass fieldName = new MyClass();
}

如果MyClass的构造函数抛出,则会在第一次使用BadClass之前导致TypeInitializationException。

您可以查看TypeInitializationException的InnerException属性,以更详细地深入了解失败的原因。它通常会指向导致类型初始化失败的基础异常。

答案 1 :(得分:9)

类初始化程序失败时抛出

TypeInitializationException。这可能有很多原因,但很可能你的类的静态构造函数中有一些代码会引发异常。您可以查看InnerException属性以获得真正的异常。

答案 2 :(得分:4)

为了捕获另一个场景,当AppConfig包含未在configSections节点中定义的部分时,将抛出此错误。它区分大小写,因此请验证您的自定义配置部分是否与configSections节点中的内容匹配。

答案 3 :(得分:1)

对我来说,它是静态字典中的重复键

public static Dictionary<string, int> Cities = new Dictionary<string, int>(){
{"New York", 1},
{"Amsterdam", 2},
{"New York", 1}
};