При использовании отражения можно получить стек вызовов (кроме того, что это может быть грубое приближение из-за оптимизации JIT) с использованием System.Diagnostics.StackTrace и исследовать содержащиеся в нем объекты StackFrame.
Как я могу получить ссылку на объект (этот указатель), на котором выполняется метод в кадре стека?
Я знаю, что могу получить MethodBase, вызвав GetMethod() в объекте фрейма стека, но то, что я ищу, - это что-то вроде линий GetObject() (которое естественно возвращает null, если метод статичен), Кажется, что объект фрейма стека может быть запрошен только для статически определенной информации, такой как информация о методе, исходный файл и т.д.
Отладчик VS знает (хотя он, вероятно, использует другой метод получения трассировки стека вызовов), так как можно дважды щелкнуть любой стек стека в окне стека вызовов и посмотреть значения локалей и полей классов.
EDIT: Чтобы уточнить: мне нужен объект экземпляр, на который был вызван метод. I.e: Если метод Foo() вызывается в экземпляре объекта где-то в стеке вызовов, и он каскадирует к методу, который я выполняю трассировку стека, я бы хотел получить ссылку на A, откуда выполняю трассировку стека. (Не объявляющий тип базы методов)