Пошаговое руководство. Создание служб WCF и доступ к таким службам
В этом пошаговом руководстве демонстрируется способ создания простой службы Windows Communication Foundation (WCF), ее тестирования и последующего доступа к ней из приложения Windows Forms.
![]() |
---|
На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Создание службы
Для создания службы WCF
В меню Файл выберите пункт Создать, а затем команду Проект.
В диалоговом окне Новый проект разверните узел Visual Basic или Visual C#, выберите пункт WCF, затем Библиотека службы WCF.Нажмите кнопку ОК для открытия проекта.
Примечание
Таким образом создается работающая служба, которую можно тестировать и использовать.В следующих двух шагах показывается способ модификации метода по умолчанию для использования другого типа данных.На практике можно также добавлять к службе свои собственные функции.
В обозревателе решений дважды щелкните файл IService1.vb или IService1.cs и найдите следующую строку:
<OperationContract()> Function GetData(ByVal value As Integer) As String
[OperationContract] string GetData(int value);
Измените тип параметра value на String:
<OperationContract()> Function GetData(ByVal value As String) As String
[OperationContract] string GetData(string value);
Обратите внимание на атрибуты <OperationContract()> и [OperationContract] в приведенном выше коде.Эти атрибуты обязательны для любого метода, предоставляемого службой.
В обозревателе решений дважды щелкните файл Service1.vb или Service1.cs и найдите следующую строку:
Public Function GetData(ByVal value As Integer) As String Implements IService1.GetData Return String.Format("You entered: {0}", value) End Function
public string GetData(int value) { return string.Format("You entered: {0}", value); }
Измените тип параметра значения на String:
Public Function GetData(ByVal value As String) As String Implements IService1.GetData Return String.Format("You entered: {0}", value) End Function
public string GetData(string value) { return string.Format("You entered: {0}", value); }
Тестирование службы
Для тестирования службы WCF
Чтобы запустить службу, нажмите клавишу F5.Форма Клиент теста WCF появится на экране и загрузит службу.
В форме Клиент теста WCF дважды щелкните метод GetData() под узлом IService1.Появится вкладка GetData.
В области Запрос выберите поле Значение и введите Hello.
Нажмите кнопку Вызов.Если появится диалоговое окно Предупреждение системы безопасности, нажмите кнопку Да.Результат будет выведен в области Ответ.
Чтобы закрыть эту тестовую форму, в меню Файл щелкните Выход.
Доступ к службе
Для ссылки на службу WCF
В меню Файл последовательно выберите пункты Добавить и Новый проект.
В диалоговом окне Новый проект разверните узел Visual Basic или Visual C#, выберите пункт Windows и выберите элемент Приложение Windows Forms.Нажмите кнопку ОК для открытия проекта.
Щелкните правой кнопкой мыши WindowsApplication1 и выберите Добавить ссылку на службу.Появится диалоговое окно Добавить ссылку на службу.
В диалоговом окне Добавить ссылку на службу выберите Найти.
В области Службы появится Служба1.
Нажмите кнопку ОК, чтобы добавить эту ссылку на службу.
Чтобы построить клиентское приложение
Если конструктор Windows Forms еще не открыт, дважды щелкните файл Form1.vb или Form1.cs в обозревателе решений, чтобы открыть его.
Из Панели элементов перетащите в форму элементы управления TextBox, Label и Button.
Дважды щелкните Button и добавьте в обработчик событий Click следующий код:
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim client As New ServiceReference1.Service1Client Dim returnString As String returnString = client.GetData(TextBox1.Text) Label1.Text = returnString End Sub
private void button1_Click(System.Object sender, System.EventArgs e) { ServiceReference1.Service1Client client = new ServiceReference1.Service1Client(); string returnString; returnString = client.GetData(textBox1.Text); label1.Text = returnString; }
В Обозревателе решений дважды щелкните WindowsApplication1 и нажмите Назначить запускаемым проектом.
Чтобы запустить проект, нажмите клавишу F5.Введите какой-то текст и нажмите кнопку.В подписи отображается сообщение "Вы ввели:" и введенный вами текст.