/// <summary>
        /// 通过反射,执行一个具体的任务
        /// </summary>
        public void Invoke(int requestIndex, string requestMethod, int responseIndex,
                           string responseMethod, bool needRelay, AfterInvokeHandler callback)
        {
            object     requester = adapters[requestIndex];
            object     responser = adapters[responseIndex];
            MethodInfo request   = requester.GetType().GetMethod(requestMethod);
            MethodInfo response  = responser.GetType().GetMethod(responseMethod);
            object     result    = response.Invoke(responser, null);

            if (needRelay)
            {
                request.Invoke(requester, new object[] { result });
            }
            else
            {
                request.Invoke(requester, null);
            }

            // 异步回调,通知执行完毕
            callback(responseIndex, responseIndex, requestMethod, responseMethod);
        }
Esempio n. 2
0
        /// <summary>
        /// 通过反射,执行一项具体任务
        /// </summary>
        /// <param name="requestIndex"></param>
        /// <param name="requestMethod"></param>
        /// <param name="responseIndex"></param>
        /// <param name="responseMethod"></param>
        /// <param name="needRelay"></param>
        /// <param name="callback"></param>
        public void Invoke(int requestIndex,string requestMethod,int responseIndex,string responseMethod,bool needRelay,AfterInvokeHandler callback)
        {
            object requester = adapters[requestIndex];
            object responser = adapters[responseIndex];
            MethodInfo request = requester.GetType().GetMethod(requestMethod);
            MethodInfo response = responser.GetType().GetMethod(responseMethod);

            object result = response.Invoke(responser, null);
            if (needRelay)
                request.Invoke(requester, new object[] { result });
            else
                request.Invoke(requester, null);

            //异步回调,通知执行完毕
            callback(requestIndex, responseIndex, requestMethod, responseMethod);
        }