Я пытаюсь получить список вызовов, сделанных с начала блока try для исключения. В приведенном ниже коде, когда я попасть в блок улов, StackTrace в объекте Исключение составляют следующие:Как получить историю вызовов метода?
на ConsoleApplication.Program.MethodC()/в ConsoleApplication.Program.Main (String [] арг).
Это вполне ожидаемо, но не помогает мне получить историю звонков. Кто-нибудь знает, как я могу это сделать?
static void MethodA() { }
static void MethodB() { }
static void MethodC() { throw new Exception(); }
static void Main(string[] args)
{
try
{
MethodA();
MethodB();
MethodC();
}
catch (Exception e)
{
// Get list of calls
throw;
}
}
Я был удивлен, увидев, что свойство StackTrace объекта Exception не StackTrace объект. Есть ли причина для этого?
В конце концов, цель всего этого проста. Если во время выполнения кода возникает исключение, я хочу посмотреть метаданные (атрибут) каждого из вызванных методов.
Код не работает. Он генерирует исключение NullRef в frame.GetMethod(). – Martin
Это довольно странно ... Осмотрите другие свойства объекта StackFrame - это может быть просто потому, что исключение было выбрано непосредственно в блоке try. – Noldorin