我正在尝试编写调用mscorlib中的方法的IL,但我无法弄清楚如何让m {{}} mscorlib实际引用类型&方法和文档&谷歌缺乏。
答案 0 :(得分:9)
获取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();
的指令关于文档,请阅读维基上的importing页面。