我想在运行时为某个类别添加一些行为。我知道如何在运行时使用Reflection.emit进行子类,但这还不够,具体取决于某些外部配置,我需要将Opcodes注入t型t上的方法,以便所有从其继承的类都自动获得此行为。(我不能使用该行为。(我无法使用该行为。 .NET分析API)

可以用mono.cecil完成这样的事情吗?

如果无法在加载的组件上修改代码,那么如果我可以在加载程序集之前对修改进行修改,然后将修改后的汇编加载到内存中是可以的,但是我不知道如何控制汇编加载。

有帮助吗?

解决方案

不,Cecil无法修改加载的组件。您必须在实际加载之前进行仪器组件。

您对组件的解决方式没有太多控制。如果将组件隐藏在您的私人文件夹中,则可以将其挂接到AppDomain.semblylove中,然后在加载之前进行仪器。

其他提示

正如JB所说的那样 - 您可以创建一个分辨率事件处理程序 - 就像伪书一样。然后在加载组件之前,您进行更改,然后完成更改后,决心组件继续加载更改的组件。

我使用此方法从内存流中解析嵌入式DLL。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top