C# 以编程方式比较两种方法的IL

C# 以编程方式比较两种方法的IL,c#,reflection,intermediate-language,C#,Reflection,Intermediate Language,我有一个已编译的程序集。我想以编程方式将该程序集中某个方法的方法实现与我所期望的进行比较 有没有办法比较他们的ILs?即使我可以得到任何指令集的字节数组表示,我也会处于一个好位置 感谢您的帮助。您可以从visual studio命令提示符下使用ildasm.exe,并执行类似ildasm.exe dll名称的操作您可以使用或从程序集提取IL您可以使用ildasm转储程序集,并区分以下两个版本: ildasm /ALL /TEXT assembly1.dll > dump1.txt ilda

我有一个已编译的程序集。我想以编程方式将该程序集中某个方法的方法实现与我所期望的进行比较

有没有办法比较他们的ILs?即使我可以得到任何指令集的字节数组表示,我也会处于一个好位置


感谢您的帮助。

您可以从visual studio命令提示符下使用ildasm.exe,并执行类似ildasm.exe dll名称的操作

您可以使用或从程序集提取IL

您可以使用ildasm转储程序集,并区分以下两个版本:

ildasm /ALL /TEXT assembly1.dll > dump1.txt
ildasm /ALL /TEXT assembly2.dll > dump2.txt
fc dump1.txt dump2.txt       
使用可能是一个很好的开始。Cecil是一个用于读取和修改CLR程序集的库,它将为您完成所有文件解析,直到获取CIL字节码


您可以使用的另一个潜在库是

,您可以尝试使用反射并使用字节数组比较IL


看看这个方法:

我的意思是我需要以编程的方式来完成。这很好。但是,我只需要比较两个程序集中单个方法的实现。这两个集会可能有很多不同。你就是那个人!这正是我想要的。我在一个小时前就开始研究这个方法了,而且之前已经用过很多次了。当我需要它的时候,从来没有想过。再次感谢。