一个简单的AOP框架
来源:互联网 发布:手机全能恢复软件 编辑:程序博客网 时间:2024/06/01 23:49
AOP它可以帮助我们解决很多代码横向的很多问题,如果你不了解AOP.请参看相关的文章.
现在介绍的一个AOP框架,来自CodeProject 作者Andrea Bioli.文章名称The simplest AOP scenario in C#
现在我们来使用这个框架来演示一个AOP的强大.
首先创建一个类,名位SimpleAOP.这个类必须继承AOPBaseClass.表示这个类要使用一个控制器来控制.代码如下
class SimpleAop:AOPBaseClass
{
public void Output(string s)
{
Console.WriteLine(s);
}
public void Test1()
{
Output("Test1");
}
Public void Test2()
{
Output(“Test2”);
}
Public void NoMatcherMethod()
{
Output(“NoMatcherMethod”);
}
}
前面提到了控制器.现在我们来创建自己的控制器类,这个类必须继承AOPBaseControler(这里著名,这里我改良过的)
public class MyController : AOPBaseController
{
public void Output(string s)
{
Console.WriteLine(s);
}
public override void Begin(object o, System.Runtime.Remoting.Messaging.IMessage msg)
{
Output("begin");
}
public override void End(object o, System.Runtime.Remoting.Messaging.IMessage msg)
{
Output("end");
}
public override void Exception(object o, System.Runtime.Remoting.Messaging.IMessage msg)
{
Output("Exception");
}
}
这里覆盖了三个方法Begin,End和Exception表示在使用AOP的类的方法中我们可以添加这三个方法.
我们现在来看入口函数
AOPConfig.SetAssoc(typeof(SimpleAop), typeof(MyController), new RegExMethNameMatcher("Test"));
SimpleAop aop = new SimpleAop();
aop.Test1();
这里的第一行表示在SimpleAOP类和MyController之间的联合,那么通过什么来联合这两个类呢?RegExMethNameMatcher这个类可以用来查找SimpleAOP里面的方法那些可以使用MyController提供的方法.
上面的例子表明了,我们的Controller运用到了匹配Test的方法上.
代码的输出结果为
Begin
Test1
End
我们在SimpleAOP类Test1方法上添加一个throw new Exception(“TestException
“);来抛出一个异常.在运行刚才的代码.输出结果为
Begin
Test1
End
Exeption
这个说明了,当抛出异常的时候,调用控制器的Exception方法.
好了,我们回到入口函数.我们添加如下的代码
Aop.Test2();/
我们可以看到输出Test2()也运用了控制器.
如果添加
Aop. NoMatcherMethod();就可以看出来,这个函数因为和Matcher不匹配,所以没有运用控制器.
体会到AOP所带来的另外一种代码复用.
框架获得请查看CodeProject
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mlssun/archive/2006/03/05/616168.aspx
- 一个简单的AOP框架
- 一个简单的AOP框架
- Spring AOP完成一个简单的参数统一校验框架
- 黑马程序员--代理+AOP--实现一个类似spring的可配置的简单AOP框架
- 一个简单的AOP原理
- 一个简单的Spring AOP
- 使用PostSharp进行AOP框架设计:从一个简单的原型
- 一个spring框架的AOP例子
- 一个简单的Spring的AOP例子
- 一个简单的Spring的AOP例子
- 一个简单的Spring的AOP例子
- 一个简单的Spring的AOP例子
- 一个简单的Spring的AOP例子
- 一个简单的Spring的AOP例子
- 一个简单的Spring的AOP例子
- 一个简单的Spring的AOP例子
- 一个简单的Spring的AOP例子
- 一个简单的spring AOP例子
- 关于siebel
- 如何启用集成windows身份认证
- 继续学习flash && flex 之AS3脚本
- edit框只输入数字
- SEO外链优化篇
- 一个简单的AOP框架
- 神经网络学习小结
- JavaScript特效:弹出菜单
- Hibernate和iBATIS比较(摘自网络)
- ASP.Net MVC框架配置与分析
- mysql中int、bigint、smallint 和 tinyint的区别
- Java程序:FTP的上传下载功能实例
- Linux下串口信息的读取
- FCKeditor