我有一个类Logger
与各种用户活动记录的静态方法。喜欢的东西:在某种情况下拦截和忽略方法调用的最有效方法是什么?
public static class Logger
{
public static void FileDownload(int fileId, int userId)
{
// Do stuff
}
// ... and a number of similar additional methods
}
所以我已经到现在,我想忽略记录该活动的某角色的用户。
为避免重写大量代码和DRY的目的,我的想法是实现一个自定义属性,我可以在Logger
类上使用该属性,对于每个方法调用,都将验证用户有一定的作用,在这种情况下,我想完全忽略方法调用。
我无法包裹头部的问题是如何拦截并中止我的属性中的方法调用。
是否有可能,还是有一些其他更有效的方法来拦截方法调用,并忽略它,如果某些条件为真?
没有实现,C#不提供机制的ad-hoc方法拦截AOP。 – 2012-03-15 17:04:51
这看起来像一个非常类似的提问/回答: http://stackoverflow.com/questions/4502134/using-attributes-to-intercept-then-reissue-method-calls – gymbrall 2012-03-15 17:06:47
@gymbrall它的确,唐我不知道自己是如何错过它的,一直在寻找它。谢谢! – 2012-03-15 17:11:31