Создание приложения клиента

We use cookies. Read the Privacy and Cookie Policy

Создание приложения клиента

Теперь, когда вы лучше понимаете внутреннюю композицию генерируемого агента, давайте попытаемся его использовать. Создайте новое консольное приложение с именем CalculatorClient, добавьте в проект файл proxy.cs с помощью выбора Project?Add Existing Item из меню и добавьте ссылку на компоновочный блок System.Web.Services.dll. Затем измените метод Main() так, как предлагается ниже.

class Program {

 static void Main(string[] args) {

  Console.WriteLine("***** Забавы c агентами WS ***** ");

  // Создание агента.

  CalculatorWebService ws = new CalculatorWebService();

  // Синхронный вызов метода Add().

  Console.WriteLine("10 + 10= {0}", ws.Add(10, 10));

  // Асинхронный вызов метода Subtract с помощью

  // нового подхода .NET 2.0 на основе событий.

  ws.SubtractCompleted += new SubtractCompleteEventHandler(ws_SubtractCompleted);

  ws.SubtractAsync(50, 45);

  // Продолжение работы консоли для гарантии получения

  // результата вычитания.

  Console.RеаdLine();

 }

 static void ws_SubtractCompleted(object sender, SubtractCompletedEventArgs e) {

  Console.WriteLine("Baш ответ: {0} ", e.Result);

 }

}

Обратите внимание на то, что новая логика асинхронного вызова в .NET 2.0 непосредственно отображается в синтаксис событий C#, который, согласитесь, является более аккуратным по сравнению с использованием методов BeginXXX()/EndXXX(), интерфейса IAsyncResult и делегата AsyncCallback.

Исходный код. Проект CalculatorClient размещен в подкаталоге, соответствующем главе 25.