如何解决无论如何更新 IL 指令以使用新的局部变量索引?
我正在尝试将一种方法注入到另一种方法中。 问题是局部变量索引。 示例-
public void Method1()
{
var tes = "anything";
}
public void Method2()
{
var spring = 40;
}
我想将 method1 注入 method2 但问题是它抛出了无效的 IL 代码,因为对于 method1 local variable 在 index 0 是 string类型strong> 并且对于 index 0 的 method2 局部变量 是 int 类型。 我所做的是获取 method1 methodDeFinition 并通过它的指令-
var Method1_Instructions= MethodDeFinition.Body.Instructions.ToList();// method1 methodDeFinition
var Method1_localVariables= Method1_MethodDeFinition.Body.Variables
for (var I = 0; I < Method1_localVariables.Count; I++)
{
Method2_MethodDeFinition.Body.Variables.Insert(I,Method1_localVariables[I]);
}
我将method1的局部变量添加到method2变量列表中,并在其前插入指令。 但由于局部变量索引问题,我知道它的错误 IL 代码。 那么,如何在不自己编写 IL 代码的情况下修复它?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。