演练:创建和访问 WCF 服务
本演练演示如何创建一个简单的 Windows Communication Foundation (WCF) 服务,对它进行测试,然后从 Windows 窗体应用程序中访问它。
备注
对于在以下说明中使用的某些 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); }
将 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 测试客户端”窗体中,双击“IService1”下的“GetData()”方法。 将显示“GetData”**选项卡。
在**“请求”框中,选择“值”**字段,然后键入 Hello。
单击**“调用”按钮。 如果显示“安全警告”对话框,请单击“确定”。 结果将显示在“响应”**框中。
在**“文件”菜单上,单击“退出”**关闭测试窗体。
访问此服务
引用 WCF 服务
在**“文件”菜单上指向“添加”,然后单击“新建项目”**。
在**“新建项目”对话框中,展开“Visual Basic”或“Visual C#”节点,接着选择“Windows”,然后选择“Windows 窗体应用程序”。 单击“确定”**打开此项目。
右击**“WindowsApplication1”,然后单击“添加服务引用”。 将出现“添加服务引用”**对话框。
在**“添加服务引用”对话框中,单击“发现”**。
**“Service1”将显示在“服务”**窗格中。
单击**“确定”**以添加此服务引用。
生成客户端应用程序
在**“解决方案资源管理器”中,如果 Windows 窗体设计器尚未打开,请双击“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 运行项目。 输入一些文本并单击该按钮。 标签将显示“您输入的内容:”以及您输入的文本。