【问题标题】:Possible to display actual source code from codebehind on aspx page (for code example pages)可以在 aspx 页面中显示来自代码后面的实际源代码(对于代码示例页面)
【发布时间】:2009-03-03 17:39:26
【问题描述】:

我正在做一个 aspx 页面来显示库的代码使用示例。

所以基本上,我想例如: 描述 源代码 按钮 输出(在数据网格中)

与其将按钮后面的代码复制并粘贴到 aspx 页面中用于显示目的,我认为能够在运行时读取实际源代码并显示它可能会很好。除了流畅之外,这还有一个额外的好处,即确保显示的源代码是最新的,而如果有人进行了更改并忘记使用新代码更新 aspx 页面,则复制和粘贴可能会过时。

我可以想到 2 种可能的方法来做到这一点: 1) (kludgy) - 部署文件后面的代码,然后可以在运行时读取这些代码,并且可以解析并显示正确的功能代码。 2)(首选)运行时反编译 DLL(与反射器一样)并显示代码。

所以我知道如何做#1,但不知道#2(如果可能的话)。

【问题讨论】:

    标签: .net asp.net reflector


    【解决方案1】:

    在运行时反编译代码不会产生与您编写的完全相同的代码。到那时,它就变成了一种解释。

    第三种选择是让您的应用针对您的代码存储库工作以检索特定文件。然后,您将在浏览器中显示该文件的内容。它类似于选项 1,但您不会将 .cs 文件直接部署到服务器。

    【讨论】:

      【解决方案2】:

      阅读实际的源文件是最好的方法,IMO - 如果你真的非常确定你不介意每个人都能看到你服务器的源代码。如果你使用像 Reflector 这样的东西,你会丢失所有的 cmets,可能是局部变量,并且像迭代器块这样的东西会变得特别奇怪。

      我有一个在C# in Depth web site 上使用的代码格式化程序(实际上是作为控件)。它相对原始,但如果您愿意,欢迎您使用它。 (如果您想尝试一下,可以通过page on the site itself 使用它。)

      【讨论】:

        【解决方案3】:

        如果您想保留 cmets 和原始变量名称,则反射将不起作用。解析代码可能是最直接的方法。也可以选择从 PDB 文件中提取数据。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-30
          • 1970-01-01
          • 1970-01-01
          • 2013-08-25
          • 2013-12-03
          • 1970-01-01
          • 2017-07-28
          • 1970-01-01
          相关资源
          最近更新 更多