protected override void OnAfterInvoke(MethodInfo method, object wrapped, object[] args, ref object outVal) { switch (method.Name) { case "Close": OnClosed(); break; case "GetResponseStream": CloseTrackingStream closeTrackingStream = new CloseTrackingStream(outVal); closeTrackingStream.Disposed += new EventHandler(diagStream_Disposed); outVal = closeTrackingStream.GetTransparentProxy(); break; } }