Aspect.NET 參考 AspectJ,透過 MSIL 實現靜態編織,**無需原始碼**,可混合編織 C#/VB.NET/VC++.NET 組件。
namespace Bob.Mazelin {
aspect Demo {
pointcut AddDemo1(): call(public void Mazelin.AspectNet.TestProject.TestClass.Demo1());
before(): AddDemo1(): PrintBefore();
after(): AddDemo1(): PrintAfter();
storage PrintBefore(): call(public void Mazelin.AspectNet.TestProject.PrintClass.PrintBefore());
storage PrintAfter(): call(public void Mazelin.AspectNet.TestProject.PrintClass.PrintAfter());
}
}
AddDemo1:Pointcut,捕獲 Demo1() 呼叫點。PrintBefore/PrintAfter:Storage,捕獲列印方法。before/after:Advice,令 Storage 方法在 Pointcut 前/後執行。下文將詳細介紹 Call/Execution Pointcut 與參數傳遞機制。