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

时间:2013-03-14 17:00:06

标签: c# wsdl web-reference

在使用.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的情况下执行此操作。 任何帮助,将不胜感激。

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

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

1 个答案:

答案 0 :(得分:2)

您有以下选项:

  1. Enable tracing用于配置中的Web服务,并将所有信息转储到文件中。如果您使用的是WCF而不是旧版Web服务,请在how to enable tracing for WCF上查看此问题。
  2. Implement your own SoapExtension并插入消息处理管道以拦截和转储传入/传出的soap消息。我认为链接artice中的示例包含TraceExtension,它正是这样做的。
  3. 按照您的指定修改生成的Reference.cs并转储传递的对象。