为了账号安全,请及时绑定邮箱和手机立即绑定

需要用c# 实现一个需求,任意方法调用失败,都会重复再调用2次。

需要用c# 实现一个需求,任意方法调用失败,都会重复再调用2次。

C#
白猪掌柜的 2018-07-26 18:10:10
比如有一个 Person 类,现在里面有1个Add 方法,如果出现异常,进入catch  然后  再次调用Add 方法  计数器减一次,如果计数器小于0 ,那么就抛出异常,否则继续调用Add 方法。现在 新增了很多方法,比如有 Delete,Update ,Putch, 等等,都需要支持调用失败,重复尝试调用,所以代码需要重构,总不能每个方法里面都写try catch 然后重复那种相同的逻辑,希望有大神能实现这个重构。
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

之前做过一个.正经的解决方案是ioc容器加接口方法拦截

你到百度搜  ioc 方法拦截 .net 

查看完整回答
反对 回复 2018-07-29
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

Add方法应该没有副作用。
重复几次应该是调用者该干的事
可以写个方法

Try<T>(Func<T> fun,int count){    while(true){        try{           return fun();
        }        catch(e){            count--;            if(count < 0) throw e;
        }
    }
}

调用的时候

var result = Try(()=>{return  Add();},1  );


查看完整回答
反对 回复 2018-07-29
  • 2 回答
  • 0 关注
  • 1073 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信