public dynamic Execute(
     IMethodMiddleware middleware1,
     IMethodMiddleware middleware2,
     object arguments, Func <object> method)
 {
     return(Invoke(arguments, method, middleware1, middleware2));
 }
 public dynamic Execute(
     IMethodMiddleware middleware1,
     IMethodMiddleware middleware2,
     object arguments, Action method)
 {
     return(Invoke(arguments, MakeFunc(method), middleware1, middleware2));
 }
 public dynamic Execute(
     IMethodMiddleware middleware1,
     IMethodMiddleware middleware2,
     Func <object> method)
 {
     return(Invoke(null, method, middleware1, middleware2));
 }
 public dynamic Execute(
     IMethodMiddleware middleware1,
     IMethodMiddleware middleware2,
     Action method)
 {
     return(Invoke(null, MakeFunc(method), middleware1, middleware2));
 }