问题描述
我正在尝试将一种方法注入到另一种方法中。 问题是局部变量索引。 示例-
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 (将#修改为@)