3

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

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

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

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

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

4

3 回答 3

5

在运行时反编译代码不会产生与您编写的完全相同的代码。在这一点上,它变得更像是一种解释。

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

于 2009-03-03T17:45:58.250 回答
3

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

我有一个代码格式化程序(实际上是一个控件),我在C# in Depth 网站上使用它。它相对原始,但如果您愿意,欢迎您使用它。(如果您想尝试一下,可以通过网站本身的页面使用它。)

于 2009-03-03T17:44:53.243 回答
0

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

于 2009-03-03T17:43:10.610 回答