在Java中,我们使用javaagent参数和ASM(http://asm.ow2.org/)实用程序来修改类加载器在内存中运行/加载时的字节代码.(也就是动态地向类中的方法添加方法调用).
例如,您可以删除对Log4j的所有调用以加速应用程序(http://surguy.net/articles/removing-log-messages.xml).
我试图弄清楚如何使用C#/ .Net在运行时执行相同的过程.我已经看到你可以操作.Net的CIL,但我还没有在运行时找到这个例子.
System.Reflection.Emit似乎是最接近的.Net equitant,你可以在其中动态创建类,但有没有办法使用它来添加或覆盖现有的类?