protected virtual object Execute(TContext context) { if (context == null) { throw new ArgumentNullException("context"); } //创建事件参数对象 var executingArgs = new CommandExecutorExecutingEventArgs(context); //激发“Executing”事件 this.OnExecuting(executingArgs); if (executingArgs.Cancel) { return(executingArgs.Result); } //执行命令 this.OnExecute(context); //创建事件参数对象 var executedArgs = new CommandExecutorExecutedEventArgs(context); //激发“Executed”事件 this.OnExecuted(executedArgs); //返回最终的执行结果 return(context.Result); }
protected virtual void OnExecuted(CommandExecutorExecutedEventArgs args) { var executed = this.Executed; if (executed != null) { executed(this, args); } }