public Response GetResponse(RESTMethods Method, string URL) { Route route; List <object> parameters; object result; if (string.IsNullOrEmpty(URL)) { throw new ArgumentNullException(nameof(URL)); } route = GetRoute(Method, URL); parameters = new List <object>(); foreach (ParameterInfo pi in route.Binding.MethodInfo.GetParameters()) { try { parameters.Add(Convert.ChangeType(route.Get(pi.Name), pi.ParameterType)); } catch { throw new InvalidParameterException(URL); } } try { result = route.Binding.MethodInfo.Invoke(route.Binding.RouteHandler, parameters.ToArray()); if (result is Response response) { return(response); } return(serializer.Serialize(result)); } catch { return(Response.InternalError); } }