我正在尝试编写调用 mscorlib 中的方法的 IL,但我无法弄清楚如何让ModuleDefinition
mscorlib 实际引用类型和方法,并且缺少文档和谷歌。
问问题
2458 次
1 回答
11
获取 mscorlib 的 ModuleDefinition 非常简单。这是一个简单的方法:
ModuleDefinition corlib = ModuleDefinition.ReadModule (typeof (object).Module.FullyQualifiedName);
但是,如果您在 mscorlib 中注入调用方法的代码,则不必自己加载模块。例如:
MethodDefinition method = ...;
ILProcessor il = method.Body.GetILProcessor ();
Instruction call_writeline = il.Create (
OpCodes.Call,
method.Module.Import (typeof (Console).GetMethod ("WriteLine", Type.EmptyTypes)));
创建一条指令来调用 Console.WriteLine();
至于文档,请阅读 wiki 上的导入页面。
于 2010-07-07T14:50:42.407 回答