Это своего рода эзотерика. Я столкнулся с NullReferenceException при попытке открыть форму (в конструкторе winforms) в проекте winforms в Visual Studio 2008. Трассировка стека указывает на четвертую строку следующего кода:
public static class Logger
{
public static void LogMethodEnter()
{
var frame = new StackFrame(1);
var method = frame.GetMethod();
Trace.TraceInformation("{0}.{1}.{2}()", method.DeclaringType.Namespace, method.DeclaringType.Name, method.Name);
Trace.Indent();
}
public static void LogMethodExit()
{
Trace.Unindent();
}
}
...имеется в виду строка с открывающей фигурной скобкой. Я столкнулся с той же проблемой (но не с участием дизайнера winforms) в других проектах, и я думаю, что это проблема, связанная с потоками, но у меня нет кода для ее воспроизведения.
Почему это происходит и почему трассировка стека исключений указывает на строку с фигурной скобкой?
Пояснение. Исключение нулевой ссылки возникает только в конструкторе winforms. Когда приложение запускается, оно не выдает эту ошибку.