title: In C#, how would I capture the SOAP used in a web service call?
body: <p>I have a C# application that is a client to a web service.  One of my requirements is to allow capturing the SOAP that I send, so that if there is a problem, I can either fix the bug, or demonstrate that the problem is in the service I am calling.</p>
  
  <p>My WebReference proxy service class derives from <code>System.Web.Services.Protocols.SoapHttpClientProtocol</code> as usual.  If I had a magic wand, I would make this base class implement an event <code>OnPost</code> that I could handle to write the SOAP into my logs and continue.</p>
  
  <p>Short of running a packet sniffer like WireShark, is there an easy way to get this level of logging?</p>