Exemplo n.º 1
0
        public XResponse Excute(ApiRequest request, string param)
        {
            initializeHeaderData(request);
            var result = XRunner.Api(request.ServiceName, request.MethodName, param, XContext.Current.Token);

            return(result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 服务执行
        /// </summary>
        /// <param name="metadata"></param>
        /// <param name="request"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        private object doExcute(ServiceRegistData service, ServiceRequest request, Action <object> responseAction, RpcCallContext context)
        {
            var typeParams = new List <object>();

            typeParams.Add(service);
            typeParams.Add(request);
            typeParams.Add(context);
            if (context?.ServerCallContext != null)
            {
                typeParams.Add(context.ServerCallContext);
            }


            var paramValue = context?.PeerAddress?.IpAddress;

            var nameParams = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);

            if (!string.IsNullOrWhiteSpace(paramValue))
            {
                nameParams.Add("ip", paramValue);
            }
            else
            {
                nameParams.Add("ip", "127.0.0.1");
            }
            var result = XRunner.Invoke(service.ServiceImpl, request.ServiceData.ServiceMethod, request.ServiceData.ServiceParam, nameParams, typeParams, responseAction);

            return(result);
        }
Exemplo n.º 3
0
        private XResponse actionExcute(IRequest request)
        {
            var serviceName = getServiceName(request, 1);
            var methodName  = getServiceName(request, 2);
            var param       = getRequestBody(request);
            var token       = getRequestToken(request, XHeader.TOKEN);

            return(XRunner.Api(serviceName, methodName, param, token));
        }
Exemplo n.º 4
0
 public string run(string typeName, string methodName, string param, string token)
 {
     return(XRunner.Api(typeName, methodName, param, token).ToJsResponse());
 }