C 開源的AOP框架

2022-09-26 06:54:12 字數 1682 閱讀 2960

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一般是 技術和位元組碼替換技術的應用,通過在合適的時機替換掉原有的...