with net method español create c# .net reflection

net - reflection c# español



Estado del método de captura usando Reflection (6)

La reflexión le dirá el tipo de parámetros que tiene un método, pero no ayudará a descubrir sus valores durante una invocación en particular. La reflexión no te dice nada sobre las variables locales.

Necesita el tipo de API que utiliza el depurador para acceder a este tipo de información.

¿Hay alguna manera de usar la reflexión .NET para capturar los valores de todos los parámetros / variables locales?



No creo que esto sea posible, puedes obtener el método y sus parámetros mirando el StackTrace.

System.Diagnostics.StackTrace sTrace = new System.Diagnostics.StackTrace(true); for (Int32 frameCount = 0; frameCount < sTrace.FrameCount; frameCount++){ System.Diagnostics.StackFrame sFrame = sTrace.GetFrame(frameCount); System.Reflection.MethodBase thisMethod = sFrame.GetMethod(); if (thisMethod == currentMethod){ if (frameCount + 1 <= sTrace.FrameCount){ System.Diagnostics.StackFrame prevFrame = sTrace.GetFrame(frameCount + 1); System.Reflection.MethodBase prevMethod = prevFrame.GetMethod(); } } }



Puede obtener esta información utilizando la API de depuración de CLR, aunque no será un par de líneas simples para extraerla.


La gente de secondlife suspende scripts y los mueve entre servidores. Eso implica que deben capturar el estado de un script en ejecución, incluidos los valores de las variables en la pila de llamadas.

Su lenguaje de scripts se ejecuta en mono, una implementación de código abierto del tiempo de ejecución de .NET. Dudo que su solución se aplique al tiempo de ejecución regular de .NET, pero el video de la presentación sobre cómo lo hicieron (salte a la segunda mitad) podría ser interesante.