internal void AfterReceiveReply(ref ProxyRpc rpc) { int offset = this.MessageInspectorCorrelationOffset; bool outputTiming = DS.MessageInspectorIsEnabled(); Stopwatch sw = null; if (outputTiming) { sw = new Stopwatch(); } try { for (int i = 0; i < this.messageInspectors.Length; i++) { if (outputTiming) { sw.Restart(); } this.messageInspectors[i].AfterReceiveReply(ref rpc.Reply, rpc.Correlation[offset + i]); if (outputTiming) { DS.ClientMessageInspectorAfterReceive(this.messageInspectors[i].GetType(), sw.Elapsed); } if (TD.ClientMessageInspectorAfterReceiveInvokedIsEnabled()) { TD.ClientMessageInspectorAfterReceiveInvoked(rpc.EventTraceActivity, this.messageInspectors[i].GetType().FullName); } } } catch (Exception e) { if (Fx.IsFatal(e)) { throw; } if (ErrorBehavior.ShouldRethrowClientSideExceptionAsIs(e)) { throw; } throw DiagnosticUtility.ExceptionUtility.ThrowHelperCallback(e); } }