public static object RunAction <TService, TRequest>( this TService service, TRequest request, Func <TService, TRequest, object> invokeAction, IRequestContext requestContext = null) where TService : IService { var actionCtx = new ActionContext { RequestFilters = new IHasRequestFilter[0], ResponseFilters = new IHasResponseFilter[0], RequestType = service.GetType(), ServiceAction = (instance, req) => invokeAction(service, request) }; requestContext = requestContext ?? new MockRequestContext(); var runner = new ServiceRunner <TRequest>(EndpointHost.AppHost, actionCtx); var response = runner.Execute(requestContext, service, request); return(response); }