可以在aspx页面中显示代码背后的实际源代码(代码示例页面)

时间:2009-03-03 17:39:27

标签: .net asp.net reflector

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

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

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

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

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

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

如果要保留注释和原始变量名称,则反射不起作用。解析代码可能是最直接的方法。可能还有一个从PDB文件中提取数据的选项。