Динамическое программирование с WCF - PullRequest
4 голосов
/ 03 сентября 2008

Кто-нибудь имеет опыт работы с динамическим программированием с использованием WCF? Под динамическим программированием я подразумеваю потребление во время выполнения WSDL. Я нашел одну запись в блоге / инструмент: http://blogs.msdn.com/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx

Кто-нибудь здесь нашел хорошие инструменты для этого?

Ответы [ 3 ]

2 голосов
/ 04 октября 2008

Это один из странных аспектов WCF. Вы можете динамически создавать фабрику каналов, но только с известным типом.

Я пришел к решению, которое не идеально, но работает:

Создайте интерфейс «IFoo», который содержит один метод, скажем, Execute(). В ESB динамически создайте ChannelFactory<IFoo> для конечной точки, к которой вы хотите подключиться. Установите свойства соединения (URI и т. Д.).

Теперь вы можете динамически подключать сервисы к вашему ESB, при условии, что они всегда реализуют интерфейс "IFoo".

1 голос
/ 03 сентября 2008

Я давно это делал с помощью веб-сервисов SOAP. В GotDotNet был инструмент, который, я думаю, стал Web Services Studio Express , который имел код, который проверял / анализировал файл WSDL и позволял вам вызывать его.

Я полагаю, что WSDL известен во время создания клиента, и вам не нужно подключаться во время выполнения. Если вы проверяете WSDL во время выполнения, вам все равно нужно иметь какую-то логику, чтобы решить, как создать прокси. Почему бы вам не использовать WSDL до выполнения? Предполагается, что веб-службы довольно статичны с интерфейсом, который не изменяется после публикации.

Вы можете использовать .NET CodeDom для генерации кода для выполнения и использования веб-службы, описанной в WSDL. WSDL может быть проанализирован с использованием стандартных классов .NET XML.

0 голосов
/ 04 сентября 2008

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

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