如何打印在运行时执行程序的当前代码?

时间:2013-11-07 10:19:36

标签: c# runtime clr metadata disassembly

我有一个应用程序(网络服务)。

我想打印一些函数的提示/描述,但不是来自DB,文本文件或其他准备好的上下文,但是来自当前正在运行模式下运行的web服务。

我只想复制它的源代码,然后通过web发布到客户端,以便在实时/运行时显示真正的函数定义。重要的是让他随时可以查看新的变化,而不是依赖于以前需要的准备上下文提示。

有什么建议吗?

我知道,CLR元数据很容易被拆解,可能有办法为我的目标做到这一点,您怎么看?

2 个答案:

答案 0 :(得分:1)

您无法访问正在执行的函数的代码,但我怀疑您确实需要函数本身的代码,而是需要定义的功能。

为此,您可以使用StackTrace类,它在运行时提供有关StackTrace的信息。

答案 1 :(得分:0)

此未来只能通过在仅构建程序集后使用属性嵌入类和方法来实现。逻辑是:

  1. 构建程序集
  2. 在构建后执行实用程序中:
    1. 获取组装参数和源代码路径
    2. 在源代码文件中查找方法和类的定义
    3. 使用像PostSharp这样的somesthing将属性添加到程序集的每个方法和类(属性将包含方法或类代码)
  3. 在运行时服务将找到此属性值,并将根据需要使用它。