Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

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

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

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

class Program {
 static void Main(string[] args) {
  Console.WriteLine("***** Забавы c агентами WS *****n");
  // Создание агента.
  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.

Оглавление книги


Генерация: 1.630. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз