探索.net框架源代码的另一种方法

时间:2010-10-06 09:29:06

标签: .net

在Eclipse中使用Java进行开发时非常方便:您可以附加源代码并探索核心Java代码,就像您自己的代码一样。在Visual Studio中,我知道只有在调试时才能看到.net源代码(我不能说这个功能运行良好)。
有没有其他方法可以探索.net源代码?

6 个答案:

答案 0 :(得分:6)

许多.NET框架库的源代码是available for download。它是在参考许可下发布的,因此您当然可以浏览代码。

另请参阅thisthis博客文章,了解如何在调试时设置visual studio以进行调试。

答案 1 :(得分:5)

使用ReSharper,您可以直接在visual studio中执行“转到声明”,它会显示实际的原始源代码你解决方案的一部分。它在调试和正常模式下都有效。它不仅适用于.NET源代码,它适用于您拥有pdbs的任何程序集(假设源代码位于磁盘或网络中的任何位置)。

结合ReflectorNavigator PowerToy “转到声明”甚至适用于既没有源代码也没有pdbs的程序集。它将在幕后使用反射器来反编译程序集,并直接在visual studio中显示源代码。

Here is an article讨论了所有这些。

alt text

答案 2 :(得分:4)

您可以在名为Reflector的工具中看到源代码。一些公司模糊了他们的DLL(出于安全原因),在这种情况下,Reflector将无法显示源代码。

答案 3 :(得分:2)

您可以查看Mono源代码。

Mono是CLR和许多基类库的开源实现。

至于Microsoft的 - 它们是专有的,因此对它们的任何访问都由Microsoft决定。正如您所看到的,调试是这样做的一种方式,并且一些公司已经与Microsoft签署了NDA,允许他们查看源代码(不幸的是,对于任何个人来说都是不太可能的选择)。

话虽如此,有些图书馆是available to download(如果您同意EULA),正如@Hemant在his answer中所说。

另一种选择(因为所有的.NET库代码都编译为IL)是使用像Reflector这样的工具来查看反汇编的版本(它不会给你原始的C#,但是尽力反编译)。

答案 4 :(得分:2)

你试过Reflector吗?可以做这个工作。

答案 5 :(得分:0)

您应该查看Reflector,它允许您读取编译的.NET程序集的字节码。它是任何.NET开发人员的必备工具;)