Хорошо; при условии, что этот код работает в режиме отладки -
static StackFrame GetTopFrameWithLineNumber(Exception e)
{
StackTrace trace = new StackTrace(e);
foreach (StackFrame frame in trace.GetFrames())
{
if (frame.GetFileLineNumber() != 0)
{
return frame;
}
}
return null;
}
Я ВСЕГДА возвращаю ноль. Почему у стековых фреймов нет номеров строк, когда, если я проверяю строку Exception.StackTrace
, она явно имеет их для любого некаркасного кода? Есть ли какая-то проблема с построением трассировки стека из исключения, о котором я не знаю?
РЕДАКТИРОВАТЬ ДЛЯ ЯРКОСТИ:
В выданном исключении я вижу номера строк в свойстве StackTrace. Я предполагаю, что это означает, что у меня есть все остальное, что мне нужно.