【发布时间】:2010-08-05 18:47:13
【问题描述】:
在c#中遍历methodinfo最简单的方法是什么?
我想遍历方法体并找到字段引用等并检索类型。
在 System.Reflection 中有:
mi.GetMethodBody().GetILAsByteArray()
这有点低级,需要“一些”工作才能遍历身体。
我知道 Cecil 存在,但在使用 cecil 加载内存程序集时出现问题。我正在使用的程序集并不总是“在磁盘上”,它可以是从例如编译的内存程序集。嘘,我想要一个干净的解决方案没有将程序集临时写入磁盘。
还有什么其他的选择吗?
【问题讨论】:
-
Cecil 和内存中的程序集有什么问题?
-
@Tim:我找到了这个markmail.org/message/yssmfgrsqnnnzrvt,它有点旧了。 AssemblyFactory 中没有任何方法可以仅从文件、字节 [] 或 Stream 加载现有程序集。我尝试将 Boo 生成的程序集序列化为 byte[],但得到“Type System.Reflection.Emit.AssemblyBuilder 未标记为可序列化”。也许我在从程序集中检索 byte[] 时做错了。
标签: c# il methodinfo