Walkthrough: Creating and Accessing WCF Services
Опубликовано: Апрель 2016
В этом пошаговом руководстве демонстрируется создание простой службы Windows Communication Foundation (WCF), ее тестирование и последующий доступ к ней из приложения Windows Forms.
Примечание
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация среды IDE.
Создание службы
Создание простой службы WCF
В меню Файл выберите пункт Создать, а затем команду Проект.
В диалоговом окне Новый проект разверните узел Visual Basic или Visual C# и щелкните WCF и Библиотека службы WCF. Нажмите кнопку ОК, чтобы создать проект.
Примечание
Будет создана работающая служба, которую можно протестировать и использовать. Следующие два действия демонстрируют, как можно изменить метод по умолчанию для использования другого типа данных. В реальном приложении необходимо также добавить к службе ее специальные функции.
-
В Обозревателе решений дважды щелкните файл IService1.vb или IService1.cs и найдите следующую строку:
[OperationContract] string GetData(int value);
<OperationContract()> Function GetData(ByVal value As Integer) As String
Измените тип параметра
value
наString
:[OperationContract] string GetData(string value);
<OperationContract()> Function GetData(ByVal value As String) As String
В приведенном выше коде обратите внимание на атрибуты
<OperationContract()>
или[OperationContract]
. Эти атрибуты обязательны для любого метода, предоставляемого службой. -
В Обозревателе решений дважды щелкните файл Service1.vb или Service1.cs и найдите следующую строку:
public string GetData(int value) { return string.Format("You entered: {0}", value); }
Public Function GetData(ByVal value As Integer) As String Implements IService1.GetData Return String.Format("You entered: {0}", value) End Function
Измените тип параметра значения на
String
:public string GetData(string value) { return string.Format("You entered: {0}", value); }
Public Function GetData(ByVal value As String) As String Implements IService1.GetData Return String.Format("You entered: {0}", value) End Function
Тестирование службы
Создание простой службы 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 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; }
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
В Обозревателе решений щелкните правой кнопкой мыши WindowsApplication1 и выберите команду Назначить запускаемым проектом.
Нажмите клавишу F5, чтобы запустить проект. Введите любой текст и нажмите кнопку. Будет отображена надпись «Введено:» с введенным ранее текстом.