Динамически вызывать веб-сервис во время выполнения - PullRequest
2 голосов
/ 30 апреля 2010

Итак, нашему приложению нужна поддержка для динамического вызова веб-сервисов, которые неизвестны во время компиляции. Поэтому пользователь должен иметь возможность указать URL-адрес для WSDL и указать некоторые привязки данных для параметров запроса и ответа.

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

Я думаю, что это выглядит довольно неуклюжим подходом, учитывая, что мне действительно не нужен строго типизированный набор классов, когда я все равно собираюсь динамически приводить свои данные. Динамическая компиляция кода для выполнения чего-то такого простого также выглядит как The Wrong Way To Do It.

Ограничивая себя протоколом SOAP, есть ли какая-нибудь библиотека для C #, которая реализует этот протокол для динамического использования? Я могу себе представить, что можно было бы генерировать структуры данных ключ / значение во время выполнения из WSDL, которые могли бы использоваться для указания сообщений запроса, а также для чтения ответов. После этого библиотека должна иметь возможность отправлять правильно сформированные SOAP-сообщения на сервер и анализировать ответы, при этом программисту не нужно будет генерировать XML вручную (по крайней мере, не заголовки и другие данные).

Кажется, я не могу найти библиотеку, которая действительно делает это. Это то, что я действительно хочу сделать, это эзотерика, или я просто искал не те места?

Спасибо

Ульрик

Ответы [ 2 ]

0 голосов
/ 10 ноября 2010

Я ищу такое решение, похоже, что WSIF - это решение

0 голосов
/ 30 апреля 2010

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

Но вместо компиляции прокси-сервера веб-службы вы можете использовать ajax-вызов javascript во время выполнения, когда вы знаете, что нужно вызывать. Вы можете использовать, например, jquery.ajax () , чтобы сделать запрос XMLHttpRequest для неизвестного веб-сервиса (когда вы знаете, что вызывать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...