我有一个用C#编写的应用程序。它已经编译完毕。
那里有很多dll文件,我无法打开它们,反编译它们无法查看和访问构建它们的C#代码,当我在Visual Studio中添加对dll文件的引用时我只能看到有哪些方法,但是我无法查看/访问这些方法的代码。
是否有工具或有办法如何查看/访问该代码,修改它然后重新编译它?
如果您有任何想法请帮帮忙!
由于
答案 0 :(得分:6)
最简单的方法是通过Reflector - 它并不完美,但会给你一个好主意。
它允许选择一个程序集并在IL,vb.net或C#中显示它。您可以将结果复制/粘贴到Visual Studio中,然后根据您的更改进行编译。
因为它适用于原始优化的IL,所以foreach
循环之类的东西最终可能会成为标签,而gotos和变量名称最终可能会成为无效的C#/ vb.net变量名称(尽管它们是有效的IL)。
我过去曾经使用它,最大的问题是重建foreach
循环,尽管在其中几个循环后模式变得明显,变量名称可以通过搜索/替换来更改。