Подтвердить что ты не робот

Исключение исключения TypeInitializationException при создании объекта

У меня есть сборка (проект библиотеки классов в .Net 3.5), которая имеет некоторые ссылки, такие как System.Configuration и System.Web. Я использую его в веб-приложении, и он отлично работает.

Теперь мне нужно сделать ссылку на проект Windows Forms, и я не могу понять, что происходит. Когда я пытаюсь создать экземпляр моего класса, он не работает; исключается тип TypeInitializationException.

Я пытаюсь создать другие экземпляры моей сборки и те работы, кроме этого конкретного класса.

Кто-нибудь знает, что происходит?

4b9b3361

Ответ 1

TypeInitializationException обычно генерируется, когда статическое поле класса не может быть инициализировано. Например:

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

Вызывает исключение TypeInitializationException до первого использования BadClass, если вы создадите конструктор MyClass.

Вы можете посмотреть свойство InnerException исключения TypeInitializationException, чтобы более подробно описать причину сбоя. Обычно это укажет на основное исключение, которое вызвало сбой инициализации типа.

Ответ 2

TypeInitializationException вызывается, когда инициализатор класса выходит из строя. Для этого может быть несколько причин, но, скорее всего, у вас есть код в статическом конструкторе вашего класса, который генерирует исключение. Вероятно, вы можете посмотреть свойство InnerException, чтобы получить реальное исключение.

Ответ 3

Чтобы поймать другой сценарий, эта ошибка будет вызываться, если ваш AppConfig содержит раздел, который не определен в configSections node. Он чувствителен к регистру, поэтому убедитесь, что ваши настраиваемые разделы конфигурации соответствуют тому, что содержится в configSections node.

Ответ 4

Для меня это был дублирующий ключ в статическом словаре

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