首页 新闻 会员 周边 捐助

关于WEBAPI过滤器中的疑问

0
悬赏园豆:20 [已解决问题] 解决于 2016-06-28 14:56
public override void OnException(HttpActionContext actionContext)
       {
           base.OnActionExecuting(actionContext);
           //....
       }
public override void OnActionExecuting(HttpActionContext actionContext)
        {
            base.OnActionExecuting(actionContext);
           //.....
        }

我的疑问就是为什么都调用了base中的 重写方法,而有些博文中却没有,我想知道其中的区别。

P.S 调用或者不调用程序的结果好像都是一样的。

陈大欠的主页 陈大欠 | 初学一级 | 园豆:185
提问于:2016-06-16 14:18
< >
分享
最佳答案
0

调用不调用是需要看i具体的业务需求和应用场景。

假设你有个在调用action前的验证过滤,当其中验证失败的时候,你就可以直接返回而不需要调用基类。

 

一般来说为了避免不必要的麻烦,在操作继续情况下都会调用下基类的方法,而你如果没有在派生类中调用基类的话

收获园豆:20
舞动字节 | 菜鸟二级 |园豆:346 | 2016-06-16 21:27

那么请问是在方法开始调用还是结束时候调用比较好呢?

陈大欠 | 园豆:185 (初学一级) | 2016-06-17 08:54

@陈大欠: 

  一个简单的调用action执行流程,假设你添加了一个账号验证过滤

 { auth_begin } ---> { 目标 action } ---> { auth_end }

所以如果你是一个验证过了,肯定是在调用目标action前执行是最好的,在action之后执行其实已经没有意义了.

但是在某些场景下,如果希望修改action执行后的一些数据或者补充数据,那么自然是要在action执行后调用好了

两种情况分别对应

Executing和Executed

舞动字节 | 园豆:346 (菜鸟二级) | 2016-06-20 13:15
其他回答(1)
1

看基类的方法有没实际操作.有实际操作就有影响.没实际操作就没影响.

吴瑞祥 | 园豆:29449 (高人七级) | 2016-06-16 14:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册