UTF.COM.CN

一种基于.Net 2.0的另类AOP

作者:佚名 | 来源:网络 | 添加时间:2006-06-09 10:23:59 | 人气:3223

一种基于.Net 2.0的另类AOP(1)

  说这种方法是AOP其实有些牵强,只能说是多少带出了一点面向切面编程的影子。不过它的实现方法很简洁,不需要任何复杂的库的支持,唯一需要的就是C# 2.0,使用的关键技术是泛型编程和匿名委托。

  我的需求是这样的:比如有一个函数,要从一个配置中取得一个整数值:

  int GetIntValue()

  {

   try

   {

   return Int32.Parse(System.Configuration.ConfigurationManager.AppSettings["SomeSetting"]);

   }

   catch

   {

   return 20;

   }

  }

  这里涉及了以下几点问题:

  1 方法从一个配置文件中读取值,这个值在配置文件中也许不存在

  2 也许在配置文件中存在,但它却不是一个有效的整数

  3 基于1、2,需要为它做异常处理

  4 当异常发生时,需要为它取一个缺省值

  也许我要从配置文件里取很多值,涉及到各种类型,或者是从别处取值,但也涉及到类型转换等需要异常处理的情况,这时我们发现,这里“异常处理”成了这类方法的一个“方面”,如果使用AOP的方法,应该对这类方法进行拦截,并进行统一的异常处理。

  利用C#2.0,我们可以把这个拦截工作变得很简单。

  第一步,让它支持异常处理:

  我们来定义一个统一的方法,使它可以进行异常处理:
责任编辑:冬天来了
【字号: 】【去论坛讨论】【发表评论】【打印本文】【告诉好友】【关闭窗口
网友评论(评论内容只代表网友观点,与本站立场无关!)

姓名:

验证码: 点击刷新