C# 从SoapHttpClientProtocol生成的MethodInfo获取底层WebResponse

C# 从SoapHttpClientProtocol生成的MethodInfo获取底层WebResponse,c#,methodinfo,webresponse,soaphttpclientprotocol,C#,Methodinfo,Webresponse,Soaphttpclientprotocol,我花了一段时间研究这个问题,但我很难得到任何有用的答案 基本上我有一个SoapHttpClientProtocol,我以前从WSDL编译过。 然后,我从clientProtocol获取特定方法的MethodInfo,并使用标准调用方法调用它 您得到的只是来自作为对象强制转换的web服务的响应。我想做的是得到传递回来的实际SOAP响应,这样我就可以进入实际的XML。我见过一种非线程安全的方法,但在这种情况下没有帮助。有人知道这样做的方法吗。也许是某种形式的代理 如果有人能帮忙,我将不胜感激 Ass

我花了一段时间研究这个问题,但我很难得到任何有用的答案

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

您得到的只是来自作为对象强制转换的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);

此链接可能有用:

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

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

Microsoft为SoapExtension本身提供了一个示例: