System.Reflection - 全局方法不可用于反射

cod*_*eim 5 .net reflection clr ildasm

System.Reflection不支持(AFAIK)反映程序集中的全局方法.在程序集级别,我必须从根类型开始.

我的编译器可以使用全局方法生成程序集,而我的标准引导程序库是一个包含一些全局方法的DLL.我的编译器使用System.Reflection在编译时导入程序集元数据.似乎我依赖System.Reflection,全局方法不可能.最干净的解决方案是将我的所有标准方法转换为类静态方法,但重点是,我的语言允许全局方法,而CLR支持它,但System.Reflection留下了空白.

ildasm显示全局方法就好了,但我认为它不使用System.Reflection本身并直接进入元数据和字节码.

除了System.Reflection之外,是否有人知道我可以使用的任何其他第三方反射或反汇编库(假设我最终会将我的编译器释放为免费的,BSD许可的开源).

解决:除了我所知,没有差距.谢谢你指出GetModules,伙计们!

Jon*_*eet 9

你看过了Module.GetMethods吗?

返回模块上定义的全局方法

您可以使用以获取装配的所有模块Assembly.GetModules().