aop面向切面程式設計(aspect oriented programming),是通過預編譯方式和執行期動態**實現程式功能的統一維護的一種技術。spring框架用的核心技術就是aop,是函式式程式設計的一種衍生范型。利用aop的好處www.cppcns.com就是可以對業務邏輯進行隔離,降低耦合度,提高程式的可重用性,同時提高了開發的效率。開源的aop也有不少,我這裡用的kingaop.
1 專案結構
2 定義乙個日誌記錄的實體類user和loggingaspect切面日誌類
namespace aopdemo.logging
public string name
public string pwd
public string ip
public string state
public system.datetime logintime
}}using system;
using system.text;
using kingaop.aspects;
namespace aopdemo.logging
public override void onexit(methodexecutionargs args)
///
/// aop對於登入日誌邏輯,只需在此進行修改即可,無需修改被切面的處理類
///
///
///
///
private string createlogdata(string methodstage, methodexecutionargs args)
", args.method));
foreach (var argument in args.arguments)
else
= ; ",
property.name, property.getvalue(argument, null));}}
}return str.tostring();
} }}
3 login類
該類必須實現idynamicmetaobjectprovider的getmetaobject方法,同時在需要切面的方法上用屬性[loggingaspect]進行標註,loggingaspect屬性也就是我們上面定義的loggingaspect切片處理類.
using system.dynamic;
using system.linq.expressions;
usingxlitcyg kingaop;
namespace aopdemo.logging
else
} ///
/// idynamicmetaobjectprovider的實現
///
///
///
public dynamicmetaobject getmetaobject(expression parameter)}}
除錯**如下:
//測試感覺kingaop必須有乙個dynamic才能切面
logging.login test = new logging.login();
dynamic entity = new logging.user ;
test.loginvaldate(entity);
本文標題: c#開源的aop框架--kingaop基礎
本文位址:
NFramework開源AOP框架開發手冊
1 使用說明 nframework設計之初就從編碼人員的角度來考慮,最終的目的也是為編碼人員服務,因此,的簡潔性與易用性成為嚴格的設計標準。nframework充分遵循了 介面隔離原則 使使用者 不必再依賴於介面,這樣您從ide環境就可以快速的定位到具體的方法體,避免了 轉到定義 帶來的煩惱。nfr...
C 的ORM 開源框架
odb 是乙個開源的,支援多平台,支援多資料庫的 c 的 orm 框架,可將 c 物件資料庫表對映,進行輕鬆的資料庫查詢和操作。使用odb進行物件持久化具有以下優點 示例 view source print?01odb sqlite database db people.db 02 03person...
AOP框架簡介
aop 面向切面程式設計,是一種設計理念,並非spring特有。aop通過橫向分離關注點,把一些公共的輔助性元件 從核心元件 中剝離,降低元件之後的耦合性,提高元件 的復用性。aop有一些基本概念,網上到處都是,這裡也不能免俗 aop一般是 技術和位元組碼替換技術的應用,通過在合適的時機替換掉原有的...