C#从Visual Studio中自动生成的Reference.cs获取XML SOAP响应

在使用.net 3.5的visual studio 2008中,我已经使用了自动生成Reference.cs的WSDL。 这是通过右键单击项目中的引用并选择“添加Web引用”来完成的

使用这个我可以发布到Web服务并通过我的ref和out对象获得有效的响应。 postValues()是一种void方法。

webService.postValues(ref value1, ref value2, out value3); 

使用WireShark我可以在我的网络上看到请求和完整的soap响应。

我想弄清楚的是如何在我的代码中捕获这个原始的SOAP响应。 我想捕获这个用于记录目的,而不是单独序列化每个ref对象。

无论如何我无法在不修改自动生成的Reference.cs的情况下执行此操作。 任何帮助,将不胜感激。

编辑:似乎没有办法做到这一点,我可以看到。 其他人可以确认或否认吗?

编辑。 生病了再多一次,看看是否有人知道。

您有以下选择:

  1. 在config中启用对Web服务的跟踪 ,并将所有信息转储到文件中。 如果您使用的是WCF而不是旧版Web服务,请参阅有关如何为WCF启用跟踪的此问题。
  2. 实现您自己的SoapExtension并插入消息处理管道以拦截和转储传入/传出soap消息。 我认为链接artice中的示例包含TraceExtension,它就是这样做的。
  3. 修改生成的Reference.cs并转储传递的对象,如您指定的那样。