Как вызвать методы wcf из клиентского прокси - PullRequest
1 голос
/ 16 июня 2010

Я создал один сервис WCF, который работает нормально, теперь я хочу использовать его в клиентском приложении.с помощью SVCutil.exe я сгенерировал прокси и aap.settings для этой службы и добавил это к клиенту sln (консольное приложение)

Но проблема в том, что я не могу получить доступ к методам wcf.*

что я делаю не так?

1 Ответ

1 голос
/ 16 июня 2010

Зависит от того, как называется ваша служба. Когда вы создали ссылку на службу, вы дали ей имя пространства имен - в этом пространстве имен должен быть класс с именем (yourservicename) Client - например, один из них и приступайте к работе.

Вы должны найти эти файлы в справочнике услуг - если вы нажмете кнопку «показать все файлы» в обозревателе решений, вы увидите тонну файлов под справкой службы - один из них должен быть Reference.cs. Эти классы определены в этом файле - вы можете проверить это, это обычный файл C #.

Обновление: Если вы создаете свой прокси с использованием svcutil.exe, в зависимости от ваших опций, используемых с svcutil, вы также должны получить файл .cs, который содержит необходимые классы.

svcutil http://yourserver/yourservice 

создаст файл с именем (your WSDL name).cs и output.config в том каталоге, где вы выполните эту команду.

Вы также можете указать имя файла для файла C #:

svcutil http://yourserver/yourservice /out:MyService.cs

и тогда ваш файл называется MyService.cs.

SvcUtil имеет тонну опций - не могу вам все объяснить, поэкспериментировать с ними, почитать в документации по MSDN.

Опять один из них будет называться (your service name)Client. Включите этот файл * .cs в свой проект, проверьте пространство имен, создайте экземпляр класса .....Client и используйте его для вызова службы WCF.

Пример:

  • Получение информации с URL

    svcutil http://www.ecubicle.net/iptocountry.asmx?wsdl /out:IP2CountryClient.cs
    
  • Включите полученный IP2CountryClient.cs в ваш проект; по умолчанию классы в этом файле не имеют определенного пространства имен, поэтому они видны глобально

  • Создание класса клиента iptocountrySoapClient

    iptocountrySoapClient  client = new iptocountrySoapClient();
    
  • Методы вызова - например, вот этот:

    string result = client.FindCountryAsString("82.82.82.82");
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...