public virtual void OnEntry(FunctionExecutionArgs <TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TResult> args)
 {
 }
 public virtual void OnSuccess(FunctionExecutionArgs <TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TResult> args)
 {
 }
 public virtual void OnException(FunctionExecutionArgs <TArg1, TArg2, TArg3, TResult> args)
 {
 }
 public virtual void OnExit(FunctionExecutionArgs <TArg1, TResult> args)
 {
 }
 public virtual void OnEntry(FunctionExecutionArgs <TResult> args)
 {
 }
 public virtual void OnSuccess(FunctionExecutionArgs <TResult> args)
 {
 }