Программно подключиться к wcf - PullRequest
1 голос
/ 21 апреля 2011

Мне нужна помощь, чтобы выяснить, как программно подключиться к службе WCF.

Это нужно сделать, не зная об услуге WCF, у меня есть только адрес.У меня нет возможности добавить все службы wcf в приложение.

Приложение, над которым я работаю, будет следить за рядом других приложений и проверять их работоспособность.Возможно, каждую минуту или около того.

У меня есть список адресов службам wcf, которые могут увеличиваться и уменьшаться, и поэтому мне нужна помощь для создания функции ac #, которая может принимать адрес и подключаться к службе wcf, а затем запрашиватьинформация из этой службы wcf.

Я много искал и не смог найти информацию и примеры того, как это можно сделать с помощью c # .net 4.0, и поэтому я очень ценю вашу помощь.

Спасибо

Ответы [ 3 ]

4 голосов
/ 21 апреля 2011

Что вам нужно сделать, это создать прокси во время выполнения, а затем использовать вновь созданный прокси для вызова службы.

Этот тип динамического прокси должен использовать класс MetadataResolver для загрузкиметаданные из службы, а затем используйте класс WsdlImporter для создания договора и привязки во время выполнения.

После компиляции динамического прокси-сервера вы можете затем вызывать операции в службе, используя отражение,Здесь есть реализация и объяснение динамического прокси-сервера WCF, который может помочь вам начать:

http://blogs.msdn.com/b/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx

И вы можете скачать код с:

http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=netfxsamples&DownloadId=3939)

0 голосов
/ 21 апреля 2011

Вы пытались использовать svcutil инструмент .Вы можете использовать его для создания различных прокси-классов (для каждого сервиса, который вам нужен), и тогда вы сможете получить доступ к сервисам очень простым способом.Если новая служба (с новыми метаданными) добавлена ​​в список, вы просто расширяете свое приложение.

Для использования svcutil вам просто нужно знать адрес службы.Все остальное можно сделать автоматически.

0 голосов
/ 21 апреля 2011

Одной из возможностей является использование MetadataExchangeClient для получения метаданных из действующей службы WCF или сбой с ошибкой, которая послужит решением для проверки связи.

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