Вопрос

Я пытаюсь создать приложение, которое позволит мне выполнить метод, указанный во время выполнения, на произвольном веб-сервисе (URL-адрес которого я также предоставлю во время выполнения).Я выяснил, как использовать Type.InvokeMember для выполнения произвольного метода, но как мне указать веб-службу для использования без создания прокси-класса.

Я нашел Как мне вызвать веб-сервис без веб-ссылки? это поможет мне, если у меня уже есть WSDL и изменится только URL-адрес, но я хотел бы иметь возможность вызвать любой веб-сервис и получить результат.

Спасибо.

Это было полезно?

Решение

Вам следует взглянуть на Dynamic Proxy для WCF (извините, но, кажется, я могу найти ссылку на него прямо сейчас) - это библиотека, которая позволяет вам проверять службы во время выполнения (если они публикуют свои метаданные), а также вызывать методы (для этого метаданные не нужны).

Редактировать:на самом деле, похоже, что на Codeplex есть проект, который делает именно это: СИФ

Другие советы

Для WCF вам нужно либо иметь прокси-класс, либо интерфейс, который реализует служба, поэтому маловероятно, что вы сможете сделать это через WCF (однако WCF бесконечно расширяем, поэтому может быть способ.

Вы всегда можете просто развернуть объект HttpWebRequest и выполнить "олдскульный" вызов сервиса и самостоятельно проанализировать результаты.

Вы должны быть в состоянии сделать свой звонок, просто используя Веб-запрос.Вам придется сформировать тело из Сообщение себя, но это не очень сложно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top