演练:创建和访问 WCF 服务

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

备注

以下说明中的某些 Visual Studio 用户界面元素在你计算机上的名称或显示位置可能有所不同。这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。有关详细信息,请参阅 在 Visual Studio 中自定义开发设置

创建服务

要创建 WCF 服务

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

  2. 新建项目对话框中,展开 Visual BasicVisual C# 节点,然后单击 WCF,接着是 WCF 服务库。 单击确定打开项目。

    “WCF 服务库”项目

    备注

    这将创建可以测试和访问的工作服务。以下两个步骤演示您可以如何修改使用不同数据类型的默认方法。在实际应用中,您还会向服务中添加您自己的函数。

  3. IService1 文件

    在解决方案资源管理器中、双击 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 文件

    解决方案资源管理器中、双击 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 服务

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

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

    GetData() 方法

  3. 请求框中,选择字段,并键入Hello。

    “值”字段

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

    “响应”框中的结果

  5. 文件菜单上单击退出关闭测试窗体。

访问服务

若要引用 WCF 服务

  1. 文件菜单上,指向添加,然后单击新建项目

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

    Windows 窗体应用程序项目

  3. 右键单击 WindowsApplication1 并单击添加服务引用。 将显示添加服务引用对话框。

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

    “添加服务引用”对话框

    Service1将在服务窗格中显示。

  5. 单击确定添加服务引用。

要创建客户端应用程序。

  1. 解决方案资源管理器中,双击 Form1.vbForm1.cs 打开 Windows 窗体设计器,如果它未打开。

  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