siguiendo mi pregunta anterior, en la que quería volcar todas las variables en la pila (de la corriente y todas las anteriores marco) que se puede ver aquí: Is there a way to examine the stack variables at runtime in C#?¿Hay una manera simple de obtener todas las variables locales en el marco de pila actual en C# (o CIL)
Me sugirieron interceptar las llamadas manualmente o utilizar el marco AOP como PostSharp para simplificar tal tarea. Miré PostSharp y los argumentos de interceptación no incluyen las variables en el marco de pila actual. Me pregunto si existe una forma simple de obtener automáticamente todas las variables locales en el marco de pila actual. Supongo que puedo realizar análisis de código y generar código que copie todos esos valores en una colección, pero tal vez haya un mecanismo incorporado que lo haga.
Gracias de antemano por cualquier sugerencia.
EDITAR: Debería haber dado más detalles de por qué quiero hacer esto. Quiero poder suspender la ejecución en medio de un método. Si tuviera el contenido de la pila podría reanudar la ejecución más tarde, o incluso serializarla y continuarla en otra máquina (suponiendo que es un código relativamente simple, por lo que no hay hilos o E/S, por ejemplo). Está bien ejecutar una herramienta de análisis de código que me permita generar automáticamente código adicional que guarde este estado. Creo que probablemente tendré que analizar el CIL para hacer esto.
¿Qué necesita esto? –
Buena suerte con tu objetivo. Recomiendo leer los detalles de la recolección de basura en .Net: sospecha de la ejecución del código administrado y manipula los datos de los métodos. (busque algo como "insde .net basura recolección" para iniciar) –