是否可以编辑现有属性集函数调用的 CIL (MSIL) 指令?

阿蒙

我知道我们可以在运行时使用 TypeBuilder 类定义类型、方法、属性和构造函数。

现在我想知道是否可以在运行时编辑函数 CIL(MSIL) 代码流。(或者至少将另一个函数设置为 set 访问器)

为了测试,我创建了一个 Dummy 类,如下所示:

public class DummyClass
{
    public long prop1 { get; set; }

    public SampleClass()
    {
    }
}

我想编辑它的 set 函数以始终设置 value -1我取得的最好成绩是访问 setter CIL(MSIL) 指令,如下所示:

var ILInstructionAsByteArray = typeof(DummyClass).GetProperties()[0].GetSetMethod().GetMethodBody().GetILAsByteArray()

甚至有可能吗?

阿蒙

是的。

使用这篇文章https://www.codeproject.com/Articles/463508/NET-CLR-Injection-Modify-IL-Code-during-Run-time我已经能够在运行时编辑 MSIL。我不会向任何有其他解决方案的人推荐它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章