以编程方式查看IL

时间:2019-03-07 22:26:13

标签: c# .net-core

有没有一种方法可以查看程序集中某些类型的IL代码?我知道我可以使用Linqpad或Reflector来查看IL,但这是一个过程未完成的事情。我可以在代码中执行此操作并获取包含方法的IL的类似字符串的内容吗?

例如

var asm = Assembly.LoadFrom(@"c:\mycode.dll");
var type = asm.GetType("Namespace.Classname");
var il = type.GetIl();

1 个答案:

答案 0 :(得分:-1)

虽然不能提取类型的整个IL,但是可以通过MethodBase.GetMethodBody()访问每个方法的IL。

您可以将通过反射进行的元数据提取与方法主体结合起来进行分析。

请记住,将向您返回原始IL蒸汽以及标签和异常部分,并且您需要负责混淆。