遍历c#方法并分析方法体

遍历c#方法并分析方法体,c#,il,methodinfo,C#,Il,Methodinfo,在c#中遍历methodinfo最简单的方法是什么 我想遍历方法体,查找字段引用等,并检索类型 在系统中,反射有: mi.GetMethodBody().GetILAsByteArray() 这有点低级,需要“一些”工作才能穿过身体 我知道Cecil存在,但是用Cecil加载内存中的程序集时出现问题。我正在使用的程序集并不总是“在磁盘上”,它可以是从例如Boo编译的内存中的程序集,如果不将程序集临时写入磁盘,我就不能得到一个干净的解决方案 还有什么其他选择吗?这件事应该有帮助:。它对通过调用G

在c#中遍历methodinfo最简单的方法是什么

我想遍历方法体,查找字段引用等,并检索类型

在系统中,反射有:

mi.GetMethodBody().GetILAsByteArray()
这有点低级,需要“一些”工作才能穿过身体

我知道Cecil存在,但是用Cecil加载内存中的程序集时出现问题。我正在使用的程序集并不总是“在磁盘上”,它可以是从例如Boo编译的内存中的程序集,如果不将程序集临时写入磁盘,我就不能得到一个干净的解决方案


还有什么其他选择吗?

这件事应该有帮助:。它对通过调用GetILAsByteArray()获得的字节数组进行操作。

Cecil和内存中的程序集有什么问题?@Tim:我发现了这个,它有点旧了。AssemblyFactory中没有仅从文件、字节[]或流加载现有程序集的方法。我试图将Boo生成的程序集序列化为byte[],但得到“Type System.Reflection.Emit.AssemblyBuilder未标记为可序列化”。也许我从程序集中检索byte[]时出错了。谢谢,应该这样做了。谷歌搜索解决方案时一定错过了那个,至少你在问之前搜索过了。不像网站上这么多人;-)如果mono团队的任何人正在阅读此文章,则运行时中会出现错误或其他问题: