2010-10-05 29 views
0

我花了一段時間看這個,但我努力得到任何有用的答案。從SoapHttpClientProtocol生成的MethodInfo獲取底層WebResponse

基本上我有一個SoapHttpClientProtocol,我從以前的WSDL編譯。 然後我從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); 

回答

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

微軟已經爲的SoapExtension本身就是一個例子:

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