首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

Aspect.NET 功能介紹(一):靜態編織核心架構與三大核心概念

     編輯:關於ASP.NET

Aspect.NET 參考 AspectJ,透過 MSIL 實現靜態編織,**無需原始碼**,可混合編織 C#/VB.NET/VC++.NET 組件。

三大核心概念

  • Pointcut: 捕獲需織入的程式碼點(同 AspectJ)。
  • Storage: Aspect.NET 獨有,捕獲需織入到 Pointcut 的程式碼(即 Advice 的實作體)。
  • Advice: 連接 Pointcut 與 Storage,形成多對多映射(無需撰寫 C# 代碼)。

範例:Demo Aspect

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 前/後執行。

特性總結

  • 靜態編織:編譯後組件 + Aspect 檔 → 織入後新組件,效能近似手寫代碼,優於動態編織,但靈活性較低。
  • 無需源碼、跨語言編織。

下文將詳細介紹 Call/Execution Pointcut 與參數傳遞機制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved