SOAP Web-сервис и C # - PullRequest
       1

SOAP Web-сервис и C #

1 голос
/ 28 апреля 2011

Мне необходимо прослушивать запросы от веб-службы на C # и отвечать на них на C # ... какой подход к этому?

Ответы [ 4 ]

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

Я предполагаю, что у вас уже есть веб-сервис, который вы хотите использовать.Существует несколько примеров использования веб-служб в Интернете (например: Использование веб-служб из приложения WinForms ).

Добавление веб-ссылки

Сначала необходимодобавьте веб-ссылку в ваш проект на C #.В VS2005 вы можете сделать это, щелкнув правой кнопкой мыши по проекту и выбрав «Добавить веб-ссылку» и указав URL-адрес веб-службы.В VS2008 или новее есть несколько дополнительных щелчков, как описано здесь .

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

Просмотр сгенерированных классов

Например, если ваша веб-служба имеет один метод (DoSomething) и расположен по адресу www.example.com/MyService.asmx (и также называется «MyService»), Visual Studio создаст класс с именем «MyService», который будет выглядеть примерно так:

namespace MyNamespace // <-- this is the name you choose when you 
{                     //     added the web reference

    public class MyService : SoapHttpClientProtocol
    {
         // synchronous execution
         public void DoSomething()
         {

         }

         // async execution
         public void DoSomethingAsync()
         {

         }

         // callback event for async execution
         public event DoSomethingCompletedEventHandler DoSomethingCompleted;
     }
}

Для проверкисодержимое сгенерированного пространства имен, дважды щелкните веб-ссылку в обозревателе решений (она должна находиться внутри папки с именем «Веб-ссылки»). Откроется браузер объектов.

Синхронное использование сгенерированных классов

Самый простой способ использовать ваш класс - создать экземпляр и вызвать метод:

// create a new instance of the service
MyService service = new MyService();

// invoke the method
service.DoSomething(); // <-- this will block the thread until completed

Использование сгенерированных классов асинхронно

Чтобы использовать асинхронную версию, вы можете прикрепить обработчик событий:

// create a new instance of the service
MyService service = new MyService();

// attach the event handler
service.DoSomethingCompleted += MyEventHandler;

// invoke the method asynchronously
service.DoSomethingAsync(); // <-- this will be invoked on a background thread
1 голос
/ 28 апреля 2011

Выберите «Добавить ссылку на службу» в обозревателе решений (щелкните правой кнопкой мыши свой проект), а затем добавьте URL-адрес вашего веб-сервиса, который вы хотите использовать, на панель адресов и скажите «Перейти».

Клиент должен быть создан автоматически из Visual Studio.

1 голос
/ 28 апреля 2011

Если ваш вопрос: нужно ли писать Web-сервисы на C #, ответ «нет». Вы можете писать веб-сервисы на многих языках, включая Java, VB.NET и даже COBOL.NET.

Если ваш вопрос таков: веб-службы должны быть написаны на том же языке, что и программы, которые их используют, ответ снова будет «нет», если ваши веб-службы не находятся в том же проекте Visual Studio, что и клиент (ы).

1 голос
/ 28 апреля 2011

Я бы посоветовал взглянуть на Это , чтобы начать.

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