我正在尝试编写调用mscorlib中的方法的IL,但我无法弄清楚如何让ModuleDefinitionmscorlib实际引用类型和方法,而文档和谷歌缺乏.
获取mscorlib的ModuleDefinition非常简单.这是一个简单的方法:
ModuleDefinition corlib = ModuleDefinition.ReadModule (typeof (object).Module.FullyQualifiedName);
Run Code Online (Sandbox Code Playgroud)
但是如果你注入了在mscorlib中调用方法的代码,你不一定要自己加载模块.例如:
MethodDefinition method = ...;
ILProcessor il = method.Body.GetILProcessor ();
Instruction call_writeline = il.Create (
OpCodes.Call,
method.Module.Import (typeof (Console).GetMethod ("WriteLine", Type.EmptyTypes)));
Run Code Online (Sandbox Code Playgroud)
创建一个调用Console.WriteLine()的指令;
至于文档,请阅读维基上的导入页面.
| 归档时间: |
|
| 查看次数: |
2094 次 |
| 最近记录: |