我读过一些关于 AOP 的文章,它看起来是一个非常有趣和强大的工具。
但是性能呢?
例如,如果我创建一个名为MyMethodAspect
. 它会做一件简单的事情——在开始执行具有该属性的方法时,称为包含在我的 MyMethodAspect 类中的代码。例如写一行文字 - '开始......'
这就是基本示例 - 但是如果在启动该方法时执行的逻辑要困难得多怎么办。我能理解在启动方法时执行的代码只编译一次,然后 AOP 不需要任何额外的性能能力吗?
C#:
public void Do(int x){
Console.WriteLine(x);
}
我想IL类似于(几乎相同):
public void Do(int x){
Console.WriteLine(x);
}
并与方面:
C#:
[MyMethodAspect]
public void Do(int x){
Console.WriteLine(x);
}
所以我想IL是这样的:
public void Do(int x){
Console.WriteLine("starting...");
Console.WriteLine(x);
}
MyMethodAspect 类是否真的只在编译阶段使用,以后不需要任何额外的性能能力?
我希望你能明白我的问题是什么,我很难解释:)
谢谢