Пошаговое руководство. Создание служб 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 и выберите команду Добавить ссылку на службу. Откроется диалоговое окно Добавление ссылки на службу.
В диалоговом окне Добавление ссылки на службу щелкните элемент Найти.
Service1 будет отображаться в области Службы .
Нажмите кнопку ОК, чтобы добавить ссылку на службу.
Создание клиентского приложения
В Обозревателе решений дважды щелкните Form1.vb или Form1.cs, чтобы открыть конструктор Windows Forms, если он еще не открыт.
Из Панели элементов перетащите на форму элемент управления 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, чтобы запустить проект. Введите любой текст и нажмите кнопку. Будет отображена надпись «Введено:» с введенным ранее текстом.