演练:在 .NET Framework Windows 窗体中创建简单的 WCF 服务

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

注意

本文中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 你可能正在使用其他版本的 Visual Studio 或其他环境设置。 有关详细信息,请参阅个性化设置 IDE

先决条件

如果 WCF 工具未随 .NET 工作负载一起安装,请使用 Visual Studio 安装程序修改安装。 在安装程序中,选择“单个组件”下的 Windows Communication Foundation。 请参阅修改 Visual Studio

创建服务

  1. 打开 Visual Studio。

  2. 在“开始”窗口上,选择创建新项目

  3. 创建新项目页面的搜索框中,键入 wcf 服务库。 选择 WCF 服务库的 C# 或 Visual Basic 模板,然后选择下一步

    在 Visual Studio 中创建新的 WCF 服务库项目

    提示

    如果看不到任何模板,可能需要安装 Visual Studio 的 Windows Communication Foundation 组件。 选择安装更多工具和功能以打开 Visual Studio 安装程序。 选择单个组件选项卡,向下滚动到开发活动,然后选择 Windows Communication Foundation。 单击“修改”

  4. 配置新项目页面上,单击创建

    注意

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

  5. 解决方案资源管理器中,双击 IService1.vbIService1.cs

    IService1 文件

    查找以下行:

    [OperationContract]
    string GetData(int value);
    

value 参数的类型更改为字符串:

[OperationContract]
string GetData(string value);

在上面的代码中,请注意 OperationContract 属性。 此属性是由服务公开的任何方法所必需的。

  1. 解决方案资源管理器中,双击 Service1.vbService1.cs

    Service1 文件

    查找以下行:

    public string GetData(int value)
    {
        return string.Format("You entered: {0}", value);
    }
    

value 参数的类型更改为字符串:

public string GetData(string value)
{
    return string.Format("You entered: {0}", value);
}

测试服务

  1. 按 F5 运行该服务。 随即显示 WCF 测试客户端窗体并加载服务。

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

    GetData() 方法

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

    “值”字段

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

    “响应”框中的结果

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

访问服务

引用 WCF 服务

  1. 在“文件”菜单中,指向“添加 > 新建项目”。 选择“Windows 窗体应用 (.NET Framework)”项目。

  2. 右击单击项目节点,然后单击“添加 > 服务引用”。 此时将出现“添加服务引用”对话框

  3. “添加服务引用”对话框中,单击“发现”

    屏幕截图显示“添加服务引用”对话框。

    Service1 显示在服务窗格中。

  4. 单击“确定”,添加服务引用

生成客户端应用程序

  1. 在解决方案资源管理器中,双击 Form1.vb 或 Form1.cs,打开 Windows 窗体设计器(如果尚未打开)

  2. 通过单击视图>工具箱(或键盘上的 Ctrl+Alt+X)打开工具箱

  3. 工具箱TextBox 控件、Label 控件和 Button 控件拖到窗体中。

    显示向表单添加控件的屏幕截图。

  4. 双击 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;
    }
    
  5. 在“解决方案资源管理器”中,右键单击项目节点(例如 WindowsFormsApp1),然后单击“设置为启动项目”。

  6. F5 运行项目。 输入一些文本,然后单击按钮。 该标签将显示“输入:”和你输入的文本。

    显示结果的运行流屏幕截图。