コード例 #1
0
 /// <summary>
 /// 权限验证
 /// </summary>
 /// <param name="service"></param>
 /// <param name="action"></param>
 /// <param name="appId"></param>
 /// <returns></returns>
 private bool Authorize(ServiceContextData serviceContext, string appId)
 {
     return(true);
 }
コード例 #2
0
        public object Invoke(object instance, object[] inputs, out object[] outputs)
        {
            //SyncMethodInvoker methodType = m_InnerInvoker as SyncMethodInvoker;

            //trace args
            serviceContext = ServiceContextData.GetContextData();
            WcfTracerData preInvokerTracer = new WcfTracerData();

            preInvokerTracer.ContextData = serviceContext;
            preInvokerTracer.Arguments   = ArgumentsInfo(inputs);
            preInvokerTracer.AppendToLog();

            //PreInvoke(instance, inputs);

            object returnedValue = null;

            object[]  outputParams = new object[] { };
            Exception exception    = null;

            try
            {
                returnedValue = m_InnerInvoker.Invoke(instance, inputs, out outputParams);
                outputs       = outputParams;
                return(returnedValue);
            }
            catch (Exception operationException)
            {
                outputs   = outputParams;
                exception = operationException;

                if (InvokerMethodInfo.ReturnType.GetInterface(responseType.FullName, false) != null)
                {
                    IResponse response = Activator.CreateInstance(InvokerMethodInfo.ReturnType) as IResponse;
                    if (response != null)
                    {
                        response.Code = ResponseCode.Exception;
                    }
                    returnedValue = response;
                    outputs       = outputParams;
                    return(returnedValue);
                }
                else
                {
                    throw;
                }
            }
            finally
            {
                PostInvoke(instance, returnedValue, outputParams, exception);

                //trace result
                WcfTracerData postInvokerTracer = new WcfTracerData();
                postInvokerTracer.ContextData = serviceContext;
                postInvokerTracer.Arguments   = ArgumentsInfo(outputParams);
                if (exception != null)
                {
                    postInvokerTracer.Exception = exception.ToString();
                }
                if (returnedValue != null)
                {
                    postInvokerTracer.ReturnedValue = returnedValue.ToString();
                }

                //IResponse r = returnedValue as IResponse;
                //if (r != null)
                //{
                //    if (r.Code != ResponseCode.Ok)
                //    {
                //        Debug.Write(r.Code);
                //    }
                //}

                postInvokerTracer.AppendToLog();
            }
        }