|
3
|
| Roman Pokrovskij Archil Labadze · 技术社区 · 15 年前 |
|
1
4
NET中的代码注入相当困难。主要是因为代码直到最后一刻才存在。它开始执行之前的一小部分时间,由JIT编译器生成。 实际的方法使用IL重写,例如在AOP中很常见。这是离线发生的, 之前 程序甚至开始执行。这不再是真正的“注入”,而是物理地更改磁盘上的程序。 有一种内联IL重写技术,它使用非托管的profiler接口。很不切实际,一篇记录这种方法的杂志文章 available here . 它是相当过时的,剖析器API从那时起已经有了很大的变化。从没听说过有工具会用这个。 |
|
|
2
1
面向方面编程(AOP)使用代码注入拦截方法调用。 |
|
|
3
1
当我听到“代码注入”时,我倾向于假设他们在谈论 Inversion of Control . Net中的一个很好的例子是 Ninject 框架。 |