.net 是否在运行时修改程序集?

.net 是否在运行时修改程序集?,.net,clr,.net,Clr,如何在给定程序集中修改内存加载的方法,以便clr在为某个类实例化新对象时,使用修改过的代码生成新对象?我认为您无法做到这一点。但您可以使用Reflection.Emit在新的内存程序集中生成新类 不过,这是一个很大的工作。您可以从框架(如)获得帮助,该框架允许您在运行时为类生成代理。这样,您可以在原始方法运行之前或之后运行任何代码,或者通过不调用原始方法来完全更改方法。您可以在加载程序集之前使用它来修改程序集 您可以将修改后的程序集保存到字节数组,然后调用assembly.Load来加载字节数组

如何在给定程序集中修改内存加载的方法,以便clr在为某个类实例化新对象时,使用修改过的代码生成新对象?

我认为您无法做到这一点。但您可以使用Reflection.Emit在新的内存程序集中生成新类

不过,这是一个很大的工作。您可以从框架(如)获得帮助,该框架允许您在运行时为类生成代理。这样,您可以在原始方法运行之前或之后运行任何代码,或者通过不调用原始方法来完全更改方法。

您可以在加载程序集之前使用它来修改程序集


您可以将修改后的程序集保存到字节数组,然后调用
assembly.Load
来加载字节数组。

我不希望使用第三方libsOK,然后放弃,或者从头重写Mono Cecil。别无选择。