只是想知道是否有人知道RedGate Reflector的开源替代方案?我很想知道一个类似于Reflector的工具是如何工作的。
注意,如果您知道免费但不开源替代Reflector,您可以回答以下相关问题:
摘要 - 2011年5月11日更新
快速总结已建议的各种开源项目和工具:
以下资源也可能有用:
答案 0 :(得分:175)
2011年12月13日更新
可以使用以下开源工具:
答案 1 :(得分:38)
另一个替代是dotPeek。 JetBrains宣布它是一款免费工具。与Resharper一起使用时,它可能会有更多的功能,但即使单独使用它也能很好地工作。
用户体验更像是MSVS,而不是独立的反汇编程序。我喜欢代码阅读比Reflector更多。 Ctrl + T导航也更适合我。只需将树与代码窗格同步就可以了。
总而言之,它仍在开发中,但已经非常有用。
答案 2 :(得分:31)
答案 3 :(得分:15)
Telerik今天发布了他们自己的反编译工具JustDecompile的测试版。封闭的来源,但是免费且看起来很有希望。
答案 4 :(得分:12)
ILSpy效果很好!
据我所知,它做了Reflector所做的一切,看起来也一样。
答案 5 :(得分:10)
实际上,我很确定Reflector被认为是具有一些反编译功能的反汇编程序。反汇编程序,因为它从程序集的文件中读取字节并将其转换为汇编语言(在本例中为ILasm)。它通过将IL解析为众所周知的模式(如表达式和语句)提供的Decompiler功能,然后将其转换为更高级别的语言,如C#,VB.Net等.Reflector的addin api允许您编写自己的语言翻译器,如果你希望...但是它如何将IL解析为表达树的魔力是一个严密保密的秘密。
如果您想了解IL反汇编程序的工作方式,我建议您查看上述三个方面中的任何一个:Dile,CCI和Mono都是这些东西的好来源。
我也强烈推荐获得Ecma 335规范和Serge Lidin的书。
答案 6 :(得分:8)
我使用Reflector的主要原因(并且,我认为,大多数人使用它的主要原因)是它的反编译器:它可以将方法的IL转换回源代码。
根据该计数,Monoflector将成为值得关注的项目。它使用Cecil(用于执行反射)和Cecil.Decompiler执行反编译。但Monoflector在两个库的顶部层叠了一个UI,这可以让您非常了解如何使用API。
Monoflector也是Reflector的一个不错的替代品。它允许您浏览类型并反编译方法,这是人们使用Reflector的99%。它的边缘非常粗糙,但我认为这会很快发生变化。
答案 7 :(得分:5)
好吧,Reflector本身就是一个.NET程序集,所以你可以在Reflector中打开Reflector.exe来查看它是如何构建的。
答案 8 :(得分:3)
我目前正在开发一个名为Assembly Analyzer的开源反汇编程序/反编译程序。它生成方法的源代码,显示程序集元数据和资源,并允许您遍历依赖项。
该项目托管在CodePlex => http://asmanalyzer.codeplex.com/
答案 9 :(得分:1)
反射器工具使用反射。 - 显然这是不正确的。
你要求两件事 - 代码显示反射器的作用,也是反射器的替代品。
这是一个例子,比Reflector的内容简化得多,但它展示了反射技术: TypeView.cs
我没有关于更换开源Reflector的建议。