reflection器的开源替代品?
只是问,如果有人知道RedGate的reflection器的 开源替代品? 我有兴趣查看一个类似于Reflector的工具是如何工作的。
请注意,如果您知道reflection器的免费但不是开源的替代品,则可以回答以下相关问题:
- 比.NET Reflector更好的东西?
总结 – 2011年5月11日更新
快速总结已经提出的各种开源项目和工具:
- 通用编译器基础结构 (CCI)
- 单音塞西尔
- ILSpy
- dnSpy ( ILSpy的 fork,项目比原来显得更加活跃)
- Dotnet IL编辑器(DILE)
- IL.View
- Monoflector (截至2011年4月不再活跃 )
以下资源也可能是有用的:
- TypeView.cs
- Jason Haley关于拆卸.NET的笔记
- Adrian Bank最近的博客文章总结了一些Reflector替代品,其中包括下面没有提到的几个选项。
- Mark Lichtenberg的详细博客文章比较了几种开源替代品(DILE,ILSpy和MonoDevelop使用MonoDevelop)到Reflector。
我知道的2个选项。
- CCI
- 单音塞西尔
这些不会给你C#。
2011年12月13日更新
以下开源工具可用:
- 来自SharpDevelop团队的ILSpy 。 感谢Scott Hanselman的tweet,突出了这个工具。
- Dotnet IL编辑器 (反汇编)
- IL.View – 在Silverlight 4中作为浏览器外的Silverlight应用程序编写的.NET Reflector替代品。 有关详细信息,请参阅此博文 。
另一个替代品是dotPeek 。 JetBrains宣布它是一个免费的工具。 与Resharper一起使用时,可能会有更多的function,但即使单独使用,它也能很好地工作。
用户体验比单独的反汇编程序更像MSVS。 我喜欢阅读代码比在reflection器。 Ctrl + T导航也适合我。 只需将树与代码窗格同步可能会更好。
总而言之,它还在开发中,但已经很好用了。
Telerik今天发布了他们自己的反编译工具JustDecompile的Beta 版本 。 封闭的来源,但免费,看起来很有希望。
ILSpy的伟大工程!
据我所知,Reflector所做的一切,看起来都一样。
其实,我很确定Reflector被认为是一些反编译器function的反汇编器。 反汇编器是因为它从程序集文件中读取字节并将其转换为汇编语言(在这种情况下为ILasm)。 通过将ILparsing为众所周知的模式(如expression式和语句),然后将其转换为更高级别的语言,如C#,VB.Net等,它提供的反编译器function。reflection器的插件API允许您编写自己的语言翻译器你希望…然而,它如何将IL分解到expression树中的魔力是一个严密的保密的秘密。
如果您想了解IL反汇编程序的工作原理,我build议您查看上面提到的三件事情:Dile,CCI和Mono都是这些东西的好资源。
我也极力推荐使用Ecma 335和Serge Lidin的书。
我使用Reflector的主要原因(也是大多数人使用它的主要原因)是它的反编译器:它可以将一个方法的IL转换回源代码。
在这一点上, Monoflector将成为值得关注的项目。 它使用reflection的Cecil和反编译的Cecil.Decompiler。 但是Monoflector在这两个库之上分层了一个UI,这应该给你一个关于如何使用API的非常好的概念。
Monoflector也是reflection器直接替代品。 它可以让你浏览types和反编译方法,这是人们使用Reflector的99%。 这是非常粗糙的,但我认为这将会很快改变。
那么,Reflector本身就是一个.NET程序集,所以你可以在Reflector中打开Reflector.exe来检查它是如何构build的。
我目前正在开发一个名为Assembly Analyzer的开源反汇编程序/反编译器。 它为方法生成源代码,显示汇编元数据和资源,并允许您遍历依赖关系。
该项目托pipe在CodePlex => http://asmanalyzer.codeplex.com/上;
reflection器工具使用reflection。 – 显然这是不正确的。
你问了两件事 – 代码显示reflection器是什么,也是reflection器的替代品。
下面是一个例子,从Reflector的function来看,这个例子很简单,但是它显示了reflection技术: TypeView.cs
我没有关于开源Reflector更换的build议。