4

我有一种情况,我已经将许多Action对象排入队列,并且我有一个线程池在每个Action. 但是,如果应用程序在队列为空之前关闭,我想在关闭之前记录队列中剩余的内容。

是否可以从Action对象中获取方法体?我可以MethodBody从 中看到该对象Action.Method.GetMethodBody(),但我看不到将其作为字符串输出的方法。

有什么想法,还是我疯了?

编辑:还有一件事;我也想保留状态信息。也就是说,我还想保留Action.

4

2 回答 2

4

是的,你疯了。

正在执行的代码已被编译为 IL,然后 JIT 编译为机器代码。动作的文本早已不复存在。

您不必排队操作。相反,创建一个包含操作和方法名称的结构,以及您想要记录的任何其他信息。将这些而不是 Action排成队列。

于 2011-01-29T01:53:58.660 回答
3

我想您不是在寻找文本表示,而是在寻找一种加载和保存表达式树的方法。我也确实遇到了这个问题,虽然我还没有使用它,但这似乎很有希望:表达式树序列化

于 2011-01-28T22:44:00.013 回答