有没有一种方法可以查看程序集中某些类型的IL代码?我知道我可以使用Linqpad或Reflector来查看IL,但这是一个过程未完成的事情。我可以在代码中执行此操作并获取包含方法的IL的类似字符串的内容吗?
例如
var asm = Assembly.LoadFrom(@"c:\mycode.dll");
var type = asm.GetType("Namespace.Classname");
var il = type.GetIl();
答案 0 :(得分:-1)
虽然不能提取类型的整个IL,但是可以通过MethodBase.GetMethodBody()访问每个方法的IL。
您可以将通过反射进行的元数据提取与方法主体结合起来进行分析。
请记住,将向您返回原始IL蒸汽以及标签和异常部分,并且您需要负责混淆。