演练:创建和访问 WCF 服务

本演练演示如何创建一个简单的 Windows Communication Foundation (WCF) 服务,对它进行测试,然后从 Windows 窗体应用程序中访问它。

提示

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置

创建服务

创建 WCF 服务

  1. 在**“文件”菜单上指向“新建”,然后单击“项目”**。

  2. 在**“新建项目”对话框中,展开“Visual Basic”“Visual C#”节点,然后依次单击“WCF”“WCF 服务库”。 单击“确定”**打开此项目。

    提示

    这将创建一个可用于测试和访问的工作服务。 下面两个步骤演示了如何修改默认方法以使用其他数据类型。 在实际应用程序中,您还可以向此服务添加您自己的功能。

  3. 在**“解决方案资源管理器”**中,双击 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] 特性。 这些特性是服务公开的任何方法所必需的。

  4. 在**“解决方案资源管理器”**中,双击 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 服务

  1. F5 运行服务。 将显示**“WCF 测试客户端”**窗体,它将加载此服务。

  2. 在**“WCF 测试客户端”窗体中,双击“IService1”下的“GetData()”方法。 将显示“GetData”**选项卡。

  3. 在**“请求”框中,选择“值”**字段,然后键入 Hello。

  4. 单击**“调用”按钮。 如果显示“安全警告”对话框,请单击“确定”。 结果将显示在“响应”**框中。

  5. 在**“文件”菜单上,单击“退出”**关闭测试窗体。

访问此服务

引用 WCF 服务

  1. 在**“文件”菜单上指向“添加”,然后单击“新建项目”**。

  2. 在**“新建项目”对话框中,展开“Visual Basic”“Visual C#”节点,接着选择“Windows”,然后选择“Windows 窗体应用程序”。 单击“确定”**打开此项目。

  3. 右击**“WindowsApplication1”,然后单击“添加服务引用”。 将出现“添加服务引用”**对话框。

  4. 在**“添加服务引用”对话框中,单击“发现”**。

    **“Service1”将显示在“服务”**窗格中。

  5. 单击**“确定”**以添加此服务引用。

生成客户端应用程序

  1. 在**“解决方案资源管理器”中,如果 Windows 窗体设计器尚未打开,请双击“Form1.vb”“Form1.cs”**将其打开。

  2. 从**“工具箱”**中将一个 TextBox 控件、一个 Label 控件以及一个 Button 控件拖到窗体上。

  3. 双击 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;
    }
    
  4. 在**“解决方案资源管理器”中,右击“WindowsApplication1”,然后单击“设为启动项目”**。

  5. F5 运行项目。 输入一些文本并单击该按钮。 标签将显示“您输入的内容:”以及您输入的文本。

请参见

其他资源

Consuming ASMX and WCF Services Sample