Как получить исполняемый объект для стекового кадра?

При использовании отражения можно получить стек вызовов (кроме того, что это может быть грубое приближение из-за JIT-оптимизации) с использованием System.Diagnostics.StackTrace и изучить содержащиеся в нем объекты StackFrame.

Как получить ссылку на объект (указатель this), над которым выполняется метод в кадре стека?

Я знаю, что могу получить MethodBase, вызвав GetMethod () для объекта стекового фрейма, но я ищу что-то похожее на GetObject () (который, естественно, возвращает null, если метод статический). Кажется, что объект стекового фрейма может быть запрошен только для статически определенной информации, такой как информация о методе, исходный файл и т. Д.

Отладчик VS знает (хотя он, вероятно, использует другой метод получения трассировки стека вызовов), так как можно дважды щелкнуть любой кадр стека в окне стека вызовов и посмотреть значения локальных переменных и полей класса.

РЕДАКТИРОВАТЬ: Чтобы уточнить: я хочуобъектэкземпляр на котором был вызван метод. Т.е. если метод Foo () вызывается для экземпляра объекта A где-то в стеке вызовов, и он каскадно относится к методу, который я выполняю трассировку стека, я хотел бы получить ссылку на A, откуда я выполняю трассировку стека. (Не объявляемый тип базы метода)

Ответы на вопрос(3)

Ваш ответ на вопрос