void InspectOutputsCore(ref MessageRpc rpc)
        {
            int       offset       = this.Parent.ParameterInspectorCorrelationOffset;
            bool      outputTiming = DS.ParameterInspectorIsEnabled();
            Stopwatch sw           = null;

            if (outputTiming)
            {
                sw = new Stopwatch();
            }

            for (int i = this.ParameterInspectors.Length - 1; i >= 0; i--)
            {
                IParameterInspector inspector = this.ParameterInspectors[i];
                if (outputTiming)
                {
                    sw.Restart();
                }

                inspector.AfterCall(this.Name, rpc.OutputParameters, rpc.ReturnParameter, rpc.Correlation[offset + i]);
                if (outputTiming)
                {
                    DS.ParameterInspectorAfter(inspector.GetType(), sw.Elapsed);
                }

                if (TD.ParameterInspectorAfterCallInvokedIsEnabled())
                {
                    TD.ParameterInspectorAfterCallInvoked(rpc.EventTraceActivity, inspector.GetType().FullName);
                }
            }
        }
        void InspectInputsCore(ref MessageRpc rpc)
        {
            int       offset       = this.Parent.ParameterInspectorCorrelationOffset;
            bool      outputTiming = DS.ParameterInspectorIsEnabled();
            Stopwatch sw           = null;

            if (outputTiming)
            {
                sw = new Stopwatch();
            }

            for (int i = 0; i < this.ParameterInspectors.Length; i++)
            {
                IParameterInspector inspector = this.ParameterInspectors[i];
                if (outputTiming)
                {
                    sw.Restart();
                }

                rpc.Correlation[offset + i] = inspector.BeforeCall(this.Name, rpc.InputParameters);
                if (outputTiming)
                {
                    DS.ParameterInspectorBefore(inspector.GetType(), sw.Elapsed);
                }

                if (TD.ParameterInspectorBeforeCallInvokedIsEnabled())
                {
                    TD.ParameterInspectorBeforeCallInvoked(rpc.EventTraceActivity, inspector.GetType().FullName);
                }
            }
        }