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

BlogEngine.NET 架構與原始碼分析系列 (9) 開發擴展 (上) - Extension 擴展

     編輯:關於ASP.NET

Extension 定義

標記 [Extension] 屬性的類別,置於 App_Code/Extensions。屬性包含描述、版本、作者等中繼資料。靜態建構子訂閱業務物件事件 (如 Post.Saved、Comment.Serving) 實現橫切邏輯。

內建 Extension 範例

  • Smilies:Comment.Serving 替換表情符號為圖片。
  • SendPings:Post.Saved/Page.Saved 發送 Trackback/Pingback。
  • SendCommentMail:新評論郵件通知。
  • ResolveLinks:評論長連結自動縮短。
  • BreakPost:文章 [more] 標記轉換為「閱讀全文」連結。
  • BBCode:評論 BBCode 標籤轉換。
  • CodeFormatter:程式碼區塊語法高亮 (第三方)。

Extension 開發步驟

  1. 建立類別,標記 [Extension("描述", "版本", "作者")]。
  2. 靜態建構子註冊事件處理器:Post.Served += (s,e) => { ... }。
  3. 編譯後置於 App_Code/Extensions,自動載入生效。

管理介面

  • 後台 Extensions 頁面列出所有 Extension,支援啟用/停用、參數設定。
  • 設定持久化至 DataStore (XML/DB)。

總結

Extension 以事件訂閱方式實現 AOP 風格擴展,零侵入業務核心,社群已貢獻大量實用 Extension。

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