只是想知道是否有人知道RedGate的Reflector的 开源替代品? 我很想知道一个类似于Reflector的工具是如何工作的。
请注意,如果您知道Reflector的免费但非开源替代方案,您可以回答以下相关问题:
摘要 - 2011年5月11日更新
快速汇总已建议的各种开源项目和工具:
- 通用编译器基础结构 (CCI)
- 单声道塞西尔
- ILSpy
- dnSpy (ILSpy的分支,项目看起来比原来更活跃)
- Dotnet IL编辑器(DILE)
- IL.View
- Monoflector (截至2011年4月不再有效 )
以下资源也可能是有意义的:
- TypeView.cs
- Jason Haley关于拆解.NET的说明
- Adrian Bank最近的博客文章总结了许多Reflector的替代方案,包括下面没有提到的几个选项。
- Mark Lichtenberg的详细博客文章将几个开源替代品(DILE,ILSpy和使用MonoDevelop的Mono Cecil)与Reflector进行了比较。
#1楼
好吧,Reflector本身是一个.NET程序集,所以你可以在Reflector中打开Reflector.exe来检查它是如何构建的。
#2楼
Reflector工具使用Reflection。
- 显然这是不正确的。
你问了两件事 - 代码显示了反射器的作用,也是反射器的替代品。
这是一个例子,比Reflector的内容简化得多,但它显示了反射技术: TypeView.cs
我没有关于开源Reflector替换的建议。
#3楼
我知道的两个选项。
- CCI
- 单声道塞西尔
这些不会给你C#。
#4楼
2011年12月13日更新
以下开源工具可用:
- 来自SharpDevelop团队的ILSpy 。 感谢Scott Hanselman的推文突出了该工具。
- Dotnet IL编辑器 (反汇编程序)
- IL.View - 作为浏览器外Silverlight应用程序在Silverlight 4中编写的.NET Reflector替代方案。 有关详细信息,请参阅此博文 。
#5楼
实际上,我很确定Reflector被认为是具有一些反编译功能的反汇编程序。 反汇编程序,因为它从程序集的文件中读取字节并将其转换为汇编语言(在本例中为ILasm)。 它通过将IL解析为众所周知的模式(如表达式和语句)提供的Decompiler功能,然后将其转换为更高级别的语言,如C#,VB.Net等.Reflector的addin api允许您编写自己的语言翻译器,如果你希望...但是它如何将IL解析为表达树的魔力是一个严密保密的秘密。
如果你想了解IL反汇编程序是如何工作的,我建议你查看上面提到的三个方面中的任何一个:Dile,CCI和Mono都是这个东西的好来源。
我也强烈推荐获得Ecma 335规范和Serge Lidin的书。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3162584