internal DirectResponse Handle(DirectRequest request, JsonSerializer jsonSerializer, object actionInstance)
 {
     var response = new DirectResponse(request);
     MethodInfo methodInfo = _metadata.GetMethodInfo(request.Action, request.Method);
     object result = null;
     try
     {
         object[] parameters = _parametersParser.Parse(methodInfo.GetParameters(), request.JsonData, request.FormData, jsonSerializer);
         result = methodInfo.Invoke(actionInstance, parameters);
     }
     catch(TargetInvocationException e)
     {
         response.SetException(e.InnerException);
     }
     catch(Exception e)
     {
         response.SetException(e);
     }
     response.Result = SerializeResult(result, jsonSerializer);
     return response;
 }
Пример #2
0
 internal DirectResponse Handle(DirectRequest request, JsonSerializer jsonSerializer, object actionInstance)
 {
     var response = new DirectResponse(request);
     MethodInfo methodInfo = _metadata.GetMethodInfo(request.Action, request.Method);
     object result = null;
     try
     {
         object[] parameters = (request.Data.Type == JTokenType.Array ? _parameterValuesParser.ParseByPosition(methodInfo.GetParameters(), (JArray)request.Data, jsonSerializer) : _parameterValuesParser.ParseByName(methodInfo.GetParameters(), (JObject)request.Data, jsonSerializer));
         result = methodInfo.Invoke(actionInstance, parameters);
     }
     catch(TargetInvocationException e)
     {
         response.SetException(e.InnerException);
     }
     catch(Exception e)
     {
         response.SetException(e);
     }
     response.Result = SerializeResult(result, jsonSerializer);
     return response;
 }