【发布时间】:2012-03-15 17:00:04
【问题描述】:
我有一个类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# 没有提供像 AOP 一样的 ad-hoc 方法拦截机制。
-
这看起来是一个非常相似的问题/答案:stackoverflow.com/questions/4502134/…
-
@gymbrall 确实如此,不知道我是怎么错过的,一直在寻找。谢谢!
标签: c# .net asp.net-mvc-3 static-methods custom-attributes