我今天刚刚看到关于PostSharp的Ayende's post。我下载了代码并试了一下,我认为这是我见过的最酷,最容易使用的方法来处理AOP。
在他的帖子中,Ayende说PostSharp通过 IL Weaving 来实现它的魔力。现在,在一些抽象的层面上,我可以推断出这意味着什么,但我想知道是否有更详细的答案。不幸的是,很长一段时间以来,谷歌第一次出现在我身上。所以我认为这对StackOverflow来说是一个很好的问题(因为我已经订阅了Jeff的博客几年了,并且知道这个网站正在做它的事情)。
究竟IL编织究竟是什么以及它是如何完成的?
答案 0 :(得分:23)
编织是指将功能注入现有程序的过程。这可以在概念上以多个层次完成:
理论上你可以更深入地编写一个可执行文件编译成本机指令,但这会增加很多复杂性,我不知道有什么能做到这一点。
答案 1 :(得分:8)
IL Weaving与ByteCode Weaving类似。 .Net编译为由.NET clr运行的中间语言。 IL Weaving基本上是分析和改变中间语言。由于它是在该级别完成的,因此可以为所有.NET语言完成。
答案 2 :(得分:4)