只是想问问有没有人知道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替代品的建议。

其他回答

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

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

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

2011年12月13日更新

以下是可用的开源工具:

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

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

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

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

我使用Reflector的主要原因(我认为也是大多数人使用它的主要原因)是它的反编译器:它可以将方法的IL转换回源代码。

在这一点上,Monoflector将是值得关注的项目。它使用了Cecil,用来反射,还有Cecil。反编译器,它执行反编译。但是Monoflector在这两个库上都有一个UI层,这应该会让你很好地了解如何使用API。

Monoflector也是Reflector的一个不错的选择。它允许您浏览类型并反编译方法,这是人们使用Reflector的99%的功能。这是非常粗糙的边缘,但我认为这将很快改变。