只是想问问有没有人知道RedGate的Reflector的开源替代品?我感兴趣的是检查类似于反射器的工具是如何工作的。

注意,如果你知道一个免费但非开源的Reflector替代品,你可以回答以下相关问题:

比。net反射器更好的东西?

总结- 2011年5月11日更新

以下是各种开源项目和工具的简要介绍:

通用编译器基础结构(CCI) Mono塞西尔 ILSpy dnSpy (ILSpy的分支,项目看起来比原来更活跃) Dotnet IL编辑器(DILE) IL.View Monoflector(2011年4月不再活跃)

你可能也会对以下资料感兴趣:

TypeView.cs Jason Haley关于分解。net的笔记 Adrian Bank最近的博客文章总结了一些Reflector的替代品,包括下面没有提到的几个选项。 Mark Lichtenberg详细的博客文章比较了几个开源替代品(DILE, ILSpy和Mono Cecil使用MonoDevelop)和Reflector。


当前回答

Actually, I'm pretty sure Reflector is considered a disassembler with some decompiler functionality. Disassembler because it reads the bytes out of an assembly's file and converts it to an assembly language (ILasm in this case). The Decompiler functionality it provides by parsing the IL into well known patterns (like expressions and statements) which then get translated into higher level languages like C#, VB.Net, etc. The addin api for Reflector allows you to write your own language translator if you wish ... however the magic of how it parses the IL into the expression trees is a closely guarded secret.

如果你想了解IL反汇编程序是如何工作的,我建议你看看上面提到的三件事中的任何一件:Dile, CCI和Mono都是很好的来源。

我也强烈推荐Ecma 335规格和Serge Lidin的书。

其他回答

2011年12月13日更新

以下是可用的开源工具:

来自SharpDevelop团队的ILSpy。感谢Scott Hanselman在推特上强调了这个工具。 Dotnet IL编辑器(一个反汇编程序) view -一个用Silverlight 4编写的。net反射器替代品,是一个浏览器外的Silverlight应用程序。详见这篇博客文章。

Telerik今天发布了他们自己的反编译工具JustDecompile的Beta版。封闭源代码,但免费,看起来很有前途。

ILSpy工作得很好!

据我所知,它做了反射器做的所有事情,看起来也一样。

嗯,Reflector本身是一个。net程序集,所以你可以在Reflector中打开Reflector.exe来查看它是如何构建的。

我目前正在开发一个名为Assembly Analyzer的开源反汇编/反编译器。它生成方法的源代码,显示程序集元数据和资源,并允许您遍历依赖项。

该项目托管在CodePlex => http://asmanalyzer.codeplex.com/上