只是想问问有没有人知道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本身是一个。net程序集,所以你可以在Reflector中打开Reflector.exe来查看它是如何构建的。

其他回答

我知道有两个选择。

cic 单塞西尔

但是这些不会给你c#。

另一个替代品是dotPeek。JetBrains宣布它是一款免费工具。当与Resharper一起使用时,它可能会有更多的功能,但即使单独使用也很好。

用户体验更像是MSVS而不是一个独立的反汇编程序。比起Reflector,我更喜欢阅读代码。Ctrl+T导航也更适合我。仅仅将树与代码窗格同步可能会更好。

总而言之,它仍在开发中,但已经非常好用了。

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

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

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

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

我没有一个开源的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的书。