在基于前兩篇文章給出的aop微型框架的實現(xiàn)的基礎(chǔ)上,我們可以寫個例子來測試一下了:)
public class aopcontrolproxyfactory : iaopproxyfactory
{
#region iaopproxyfactory 成員
public aopproxybase createaopproxyinstance(marshalbyrefobject obj, type type)
{
return new aopcontrolproxy(obj ,type) ;
}
#endregion
}
//自定義真實代理
public class aopcontrolproxy : aopproxybase
{
public aopcontrolproxy(marshalbyrefobject obj ,type type) : base(obj ,type)
{
}
public override void preprocess(imessage requestmsg)
{
console.write("begin aop !") ;
}
public override void postprocess(imessage requestmsg, imessage respond)
{
console.write("end aop !") ;
}
}
[aopproxyattribute(typeof(aopcontrolproxyfactory))] //將自己委托給aop代理aopcontrolproxy
public class example : contextboundobject//放到特定的上下文中,該上下文外部才會得到該對象的透明代理
{
private string name ;
public example(string a)
{
this.name = a ;
}
[methodaopswitcherattribute(true)]
public void say_hello()
{
console.writeline("hello ! " + name ) ;
}
public void saybyebye()
{
console.writeline("bye ! " + name ) ;
}
}
新聞熱點
疑難解答
圖片精選