Пример #1
0
    public object Invoke(object instance, object[] inputs, out object[] outputs)
    {
        var result = _originalInvoker.Invoke(instance, inputs, out outputs);

        return(result);
    }
Пример #2
0
 public object Invoke(object instance, object[] inputs, out object[] outputs)
 {
     return(_invoker.Invoke(instance, CastCorrections(inputs), out outputs));
 }
 public object Invoke(object instance, object[] inputs, out object[] outputs)
 {
     inputs = CleanInputs(inputs);
     return(_invoker.Invoke(instance, inputs, out outputs));
 }
Пример #4
0
 public object Invoke(object instance, object[] inputs, out object[] outputs)
 {
     return(OriginalInvoker.Invoke(instance, inputs, out outputs));
     //outputs = new object[0];
     //return false;
 }
Пример #5
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();
            }
        }
 public virtual object Invoke(object instance, object[] inputs, out object[] outputs)
 {
     return(OldInvoker.Invoke(instance, inputs, out outputs));
 }