探索.net framework源代码的替代方法

探索.net framework源代码的替代方法,.net,.net,在Eclipse中使用Java进行开发时,它非常方便:您可以像自己一样附加源代码和探索核心Java代码。在Visual Studio中,我知道只有在调试时才能观看.net源代码(我不能说这个功能工作得很好)。 探索.net源代码有其他选择吗?您可以查看源代码 Mono是CLR和许多基类库的开源实现 至于微软的——它们是专有的,所以任何对它们的访问都由微软决定。正如您所看到的,调试是一种方式,一些公司已经与Microsoft签署了NDA,允许他们查看源代码(不幸的是,对于任何个人来说,这都是不可能

在Eclipse中使用Java进行开发时,它非常方便:您可以像自己一样附加源代码和探索核心Java代码。在Visual Studio中,我知道只有在调试时才能观看.net源代码(我不能说这个功能工作得很好)。
探索.net源代码有其他选择吗?

您可以查看源代码

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

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

话虽如此,正如@Hemant在中所说的那样,有些库是(只要您同意EULA)


另一种选择(因为所有.NET库代码都编译为IL)是使用类似于查看反汇编版本的工具(它不会为您提供原始C#,而是尽最大努力进行反编译)。

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

您尝试过吗?可能会完成这项工作。

使用,您可以直接从visual studio中执行“转到声明”,它将获取实际的、原始的、不属于您的解决方案的源代码。它可以在调试和正常模式下工作。它不仅适用于.NET源代码,还适用于您拥有PDB的任何程序集(假定源代码位于磁盘或网络中的任何位置)

与“Go to Declaration”结合使用,甚至可以用于既没有源代码也没有PDB的程序集。它将在后台使用reflector来反编译程序集,并在VisualStudio中直接向您展示源代码

这就是所有这些


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

许多.NET framework库的源代码都是。它是在参考许可下发布的,所以您当然可以浏览代码


另请参阅有关如何将visual studio设置为在调试时介入的日志和博客文章。

如果无法看到源代码,将转到对象浏览器。例如,它不会为您提供
string.Split
的源代码。您必须配置resharper才能这样做。然后你甚至可以使用string.Split。String.Split在.NET源代码存储库中可用。我用一篇文章更新了我的答案,描述了所有这些。+1-其他人都提到了Reflector,它是一个很棒的工具,但到目前为止,只有你真正建议使用真正的源代码。如果可用,原始源代码比反编译源代码更可取,因为它包含所有原始注释/变量名等。好的,我从该链接下载了几个.MSI文件,但它们都已损坏。。。这似乎是微软的半途而废。考虑到很多人已经成功下载了这些文件,也许,只是也许,问题不在微软这边。但是,嘿,炒作微软更有趣,不是吗?@jalf嗯,我在Firefox和IE中都试过了。。。你会怎么想?你能下载.NET 4 one吗?@jalf,你能告诉我它的大小吗?.NET framework库源代码可供所有人使用。请参考我的答案!反射器是一个很好的工具——但是对于.Net源代码本身,您可以下载实际的源代码(它有代码注释和私有变量名称等),以及调试符号,以便您能够在IDE中进入代码。建议reflector没有什么错,但特别是对于.NETFramework源代码,我认为实际的源代码通常是更好的选择。