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