¿Cómo obtengo el objeto de ejecución para un stackframe?

Cuando se usa la reflexión, es posible obtener la pila de llamadas (además de que puede ser una aproximación aproximada debido a las optimizaciones JIT) usando System.Diagnostics.StackTrace y examinar los objetos StackFrame contenidos.

¿Cómo puedo obtener una referencia al objeto (el puntero this) en el que se está ejecutando un método en un marco de pila?

Sé que puedo obtener MethodBase llamando a GetMethod () en el objeto de marco de pila, pero lo que estoy buscando es algo similar a GetObject () (que naturalmente devolvería nulo si el método es estático). Parece que el objeto de marco de pila solo se puede consultar para obtener información determinada estáticamente, como información del método, archivo de origen, etc.

El depurador VS lo sabe (aunque probablemente use otro método para obtener el seguimiento de la pila de llamadas), ya que se puede hacer doble clic en cualquier marco de la pila en la ventana de la pila de llamadas y observar los valores de los campos locales y de clase.

EDIT: Para aclarar: quiero laobjetoejempl en el que se llamó al método. Es decir: si se llama al método Foo () en la instancia de objeto A en algún lugar de la pila de llamadas, y se conecta en cascada con el método en el que hago el seguimiento de la pila, me gustaría obtener una referencia a A desde donde realizo el seguimiento de la pila. (No es el tipo de declaración de la base del método)

Respuestas a la pregunta(6)

Su respuesta a la pregunta