演练:创建和访问 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); }
更改值参数类型为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将在服务窗格中显示。
单击确定添加服务引用。
要创建客户端应用程序。
在解决方案资源管理器中,双击 Form1.vb 或 Form1.cs 打开 Windows 窗体设计器,如果它未打开。
从工具箱把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 运行该项目。 输入一些文本,然后单击按钮。 该标签将显示“输入:”和您输入的文本。