public object Invoke(MethodInfo targetMethod, object[] args) { ClientActionHanler handler = GetHandler(targetMethod); var request = handler.GetRequest(args); Response response; switch (request.Method) { case Request.POST: response = Post(request.Url, request.Header, request.QueryString, request.Data, handler.Formater, request.Type); break; case Request.PUT: response = Put(request.Url, request.Header, request.QueryString, request.Data, handler.Formater, request.Type); break; case Request.DELETE: response = Delete(request.Url, request.Header, request.QueryString, handler.Formater, request.Type); break; default: response = Get(request.Url, request.Header, request.QueryString, handler.Formater, request.Type); break; } return(response.Body); }
private ClientActionHanler GetHandler(MethodInfo method) { ClientActionHanler result; if (!mHandlers.TryGetValue(method, out result)) { result = new ClientActionHanler(method); mHandlers[method] = result; } return(result); }