只是想问问有没有人知道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。


当前回答

反射器工具使用反射。-显然这是不对的。

你要求两件事-代码,显示反射器做什么,也是一个替代反射器。

下面是一个例子,从Reflector的工作中简化了很多,但它展示了反射的技术: TypeView.cs

我没有一个开源的Reflector替代品的建议。

其他回答

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

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应用程序。详见这篇博客文章。

我知道有两个选择。

cic 单塞西尔

但是这些不会给你c#。

反射器工具使用反射。-显然这是不对的。

你要求两件事-代码,显示反射器做什么,也是一个替代反射器。

下面是一个例子,从Reflector的工作中简化了很多,但它展示了反射的技术: TypeView.cs

我没有一个开源的Reflector替代品的建议。