2010-10-05 3 views
0

J'ai passé un certain temps à regarder cela, mais j'ai du mal à obtenir des réponses utiles.Obtenir WebResponse sous-jacente de MethodInfo généré à partir de SoapHttpClientProtocol

Fondamentalement, j'ai un SoapHttpClientProtocol que j'ai compilé à partir d'un WSDL précédemment. Ensuite, j'obtiens le MethodInfo de ma méthode particulière du clientProtocol et je l'appelle en utilisant la méthode standard Invoke.

Ce que vous obtenez est juste la réponse de la distribution de service Web en tant qu'objet. Ce que je veux faire est obtenir la réponse SOAP réelle qui est transmise afin que je puisse entrer dans le XML réel. J'ai vu une façon non-thread-safe de le faire mais ce n'est pas une aide dans ce cas. Est-ce que quelqu'un sait une façon de le faire. Peut-être une forme de proxy?

Serait extrêmement reconnaissant si quelqu'un pouvait aider.

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); 

Répondre

0

Ce lien pourrait être utile:

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

L'exemple fourni est pour obtenir la demande sortante, mais il semble aussi applicable à la réponse.

Si cela ne fonctionne pas (puisque vous réfléchissant) peut-être cette méthode pourrait fonctionner pour ajouter un SoapExtension:

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

Microsoft a un exemple pour le SoapExtension lui-même:

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

Questions connexes