我如何以编程方式(使用反射?)更改方法体并将我的更改保存回磁盘

时间:2010-05-14 19:04:30

标签: c# .net reflection

我可以使用反射

轻松搞定方法体
Type type = assembly.GetType("Lorem.Ipsum.Dolor.Sit");
MethodInfo methodInfo = type.GetMethod("Amet");
MethodBody methodBody = methodInfo.GetMethodBody();

如何以编程方式更改方法体并将更改保存回磁盘?

3 个答案:

答案 0 :(得分:3)

AFAIK,你做不到。

使用反射,您修改了一个内存中的对象,该对象是由在运行时由CLR加载和优化的二进制文件生成的。

修改

这个问题有更多相关信息。

Modifying Existing .NET Assemblies

答案 1 :(得分:2)

另一个好的lib: https://bitbucket.org/0xd4d/dnlib

与Mono.Cecil相比,处理混淆的程序集要好得多。

答案 2 :(得分:1)

如果没有第三方库,你就无法做到。看看:http://www.mono-project.com/Cecil