命令过滤器

    SuperSocket 中的命令过滤器看起来有些像 ASP.NET MVC 中的 Action Filter,你可以用它来做命令执行的拦截,命令过滤器会在命令执行前和执行后被调用。

    命令过滤器必须继承于 Attribute 类 CommandFilterAttribute:

    OnCommandExecuting: 此方法将在命令执行前被调用;

    OnCommandExecuted: 此方法将在命令执行后被调用;

    下面的代码定义了一个命令过滤器 LogTimeCommandFilterAttribute 用于记录执行时间超过5秒钟的命令:

    然后通过增加属性的方法给命令 "QUERY" 应用此过滤器:

    你可以通过将 commandContext's 的 Cancel 属性设为 True 来取消当前命令的执行: