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

3

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

我想要打印一些函数的提示/描述,但不是从数据库、文本文件或其他准备好的上下文中获取,而是从当前正在运行的Web服务中获取。

我只想复制它的源代码,然后通过Web将其发布到客户端,以显示实时/运行时的真实函数定义。重要的是让他始终可以查看最新的更改,并且不依赖于先前所需的准备好的提示上下文。

有什么建议吗?

我知道CLR元数据很容易反汇编,也许有一种方法可以为我的目的做到这一点,您觉得呢?


3
你想解决哪个问题?展示源代码如何帮助最终用户? - Lasse V. Karlsen
这只是一个建议,让您走上正确的道路;如果我,一开始我会将代码块保留在数据库中,并自动编译该代码块为库。然后该库成为主要 Web 服务的插件,您可以以后期绑定的方式引用它,并从中执行代码块。WebService 将根据需要检查新库并将其插入,并使其可供前端选择。 - BeemerGuy
2个回答

1
你无法在执行过程中访问函数的代码,但我怀疑你实际上并不需要函数本身的代码,而是需要函数的定义。
为此,您可以使用StackTrace类,在运行时提供有关StackTrace的信息。

0

这个功能只能在构建程序集之后通过嵌入类和方法属性来实现。其逻辑是:

  1. 构建程序集
  2. 在构建后执行工具,该工具:
    1. 将您的程序集和源代码路径作为参数传递
    2. 在源代码文件中查找方法和类的定义
    3. 使用类似 PostSharp 的工具向程序集的每个方法和类添加属性(属性将包含方法或类的代码)
  3. 在运行时,服务将查找此属性值并根据需要使用它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接