0

我花了一段时间看这个,但我很难得到任何有用的答案。

基本上我有一个之前从 WSDL 编译的 SoapHttpClientProtocol。然后我从 clientProtocol 获取我的特定方法的 MethodInfo 并使用标准 Invoke 方法调用它。

您得到的只是来自作为对象的 Web 服务的响应。我想要做的是获取传回的实际 SOAP 响应,这样我就可以进入实际的 XML。我已经看到了一种非线程安全的方法,但在这种情况下没有帮助。有谁知道这样做的方法。也许某种形式的代理?

如果有人可以提供帮助,将不胜感激。

Assembly assembly = GetLoadedAssembly(@"C:\Assembly.dll");
SoapHttpClientProtocol instanceType = (SoapHttpClientProtocol)assembly.CreateInstance("MyMethod");

MethodInfo method = instanceType.GetType().GetMethod(methodName);
object[] objParameters = {"a parameter"};
object response = method.Invoke(instanceType, objParameters);
4

1 回答 1

0

此链接可能有用:

http://orbinary.com/blog/2010/01/getting-the-raw-soap-xml-sent-via-soaphttpclientprotocol/

提供的示例用于获取传出请求,但它似乎也适用于响应。

如果这不起作用(因为您正在反映),那么此方法可能适用于添加 SoapExtension:

http://blog.gatosoft.com/2005/07/31/ProgramaticallyRegisteringSoapExtensionsRedux.aspx

Microsoft 有一个 SoapExtension 本身的示例:

http://msdn.microsoft.com/en-us/library/bb552923(VS.90).aspx

于 2011-02-04T00:01:42.590 回答