一种基于.Net 2.0的另类AOP

来源:csdn 作者:就是这么瘦 2006-08-02 出处:pcdog.com

安全  数据库  
下一页 1 2 3 4 

  说这种方法是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,我们可以把这个拦截工作变得很简单。

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

  我们来定义一个统一的方法,使它可以进行异常处理:
更多内容请看PCdog.com--.NET基础介绍专题
下一页 1 2 3 4 
上一篇:如何通过判断按键来退出循环
下一篇:一个用C#写的无限结点树的源码