Получить базовый WebResponse из MethodInfo, сгенерированного из SoapHttpClientProtocol - PullRequest
0 голосов
/ 05 октября 2010

Я провел некоторое время, глядя на это, но изо всех сил пытаюсь получить какие-либо полезные ответы.

По сути, у меня есть SoapHttpClientProtocol, который я скомпилировал ранее из WSDL. Затем я получаю MethodInfo для моего конкретного метода из clientProtocol и вызываю его, используя стандартный метод Invoke.

То, что вы получаете, - это просто ответ от веб-службы, представленной как объект. То, что я хочу сделать, это получить фактический ответ 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);

1 Ответ

0 голосов
/ 04 февраля 2011

Эта ссылка может быть полезна:

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

...