首页 新闻 搜索 专区 学院

如何让多个方法执行后再进行一个操作[内详]

0
悬赏园豆:20 [已关闭问题]

例如 Class1.MethodA, Class2.MethodB, Class3.MethodC ...... ClassN,MethodN
我想让这些方法执行完毕后, 都再进行一个操作,例如写入日志。这个要如何做?
是不是可以把这些方法加个Attribute,可接下来如何做我就不知道了

rad的主页 rad | 初学一级 | 园豆:28
提问于:2009-08-05 17:18
< >
分享
其他回答(3)
0

反射所有类的静态方法,找到方法名符合你的要求的或者如你所说有某个属性的,然后调用。

如果反射静态方法及调用参见我这篇文章

http://www.cnblogs.com/eaglet/archive/2009/06/05/1496697.html

eaglet | 园豆:17119 (专家六级) | 2009-08-05 17:59
我希望是执行完MethodA,MethodB....后,再执行一个方法MethodLog 在哪里反射呢? 而且反射的话效率有点太低了...方法多.
支持(0) 反对(0) rad | 园豆:28 (初学一级) | 2009-08-05 18:32
0

你的方法都是多线程并行操作的吗?

如果不是多线程,为什么不能在最后一个方法后面再 + 你需要执行的方法呢?

四眼蒙面侠 | 园豆:504 (小虾三级) | 2009-08-05 19:02
0

最笨的方法就是一个方法一个类,统一继承基类,基类是虚方法,子类重写,并调用基类的base 方法(你说的都执行的那个操作)

 例如:

 

 

如果你用Attribute 也是可以的。

例如:Assembly.GetAssembly(typeof (XXX)).GetCustomAttributes(false);

遍历,然后操作你的公共方法,不过这样做需要时无逻辑顺序的。

winzheng | 园豆:8797 (大侠五级) | 2009-08-05 22:26
如果我有一万个方法 那么不是要到每一个方法的方法体最后加上base.xx();?? 我不可以想办法给具有某特性所有方法统一加上一个base.xx();么?
支持(0) 反对(0) rad | 园豆:28 (初学一级) | 2009-08-06 09:06
0

通过AOP可以实现,LZ可以看看Sprint.NET中关于AOP的部分。

麒麟.NET | 园豆:3614 (老鸟四级) | 2009-08-06 14:56
支持。AOP实际上是动态的在你的方法前后增加你要做的事情,参考一下代理Proxy
支持(0) 反对(0) 排骨虾 | 园豆:401 (菜鸟二级) | 2009-08-06 17:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册