演示:在 .NET Framework Windows 窗体应用程序中创建 WCF 服务

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

注释

本文中的说明阐述了 Visual Studio 中可用的最新版本的交互式开发体验 (IDE)。 你的计算机可能会对某些用户界面元素显示不同的名称或位置。 你可能正在使用其他版本的 Visual Studio 或其他环境设置。 有关详细信息,请参阅个性化设置 IDE

先决条件

安装了 Windows Communication Foundation 组件的 Visual Studio。 若要进行安装:

  1. 打开 Visual Studio 安装程序 应用,或从 Visual Studio 菜单中选择 “工具>获取工具和功能 ”。
  2. Visual Studio 安装程序中,选择要修改的 Visual Studio 版本旁边的 “修改 ”。
  3. 选择“单个组件”选项卡,然后选择“开发”活动下的 Windows Communication Foundation
  4. 选择“”并修改“”。

有关详细信息,请参阅 修改 Visual Studio 工作负载、组件和语言包

创建 WCF 服务

若要在 Visual Studio 中创建 WCF 服务,请执行以下步骤:

  1. 在 Visual Studio 中,从菜单中选择 “文件>新建>项目 ”。

  2. “创建新项目 ”页上,在搜索框中输入 wcf 服务库 。 选择 WCF 服务库的 C# 或 Visual Basic 模板,然后选择“ 下一步”。

    显示如何在 Visual Studio 中创建 WCF 服务库项目的屏幕截图。

    小窍门

    如果未看到任何模板,可能需要安装 Visual Studio 的 Windows Communication Foundation 组件。 有关详细信息,请参阅 先决条件

  3. “配置新项目 ”页上,验证设置,然后选择“ 创建”。

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

  4. 解决方案资源管理器中,根据创建的项目类型,双击 WCF 服务库项目中 的IService1.csIService1.vb

    显示解决方案资源管理器中的 IService1 文件的屏幕截图。

  5. 找到以下行:

    [OperationContract]
    string GetData(int value);
    

  1. 将参数的类型 value 更改为字符串。

    在此代码示例中,请记下该 OperationContract 属性。 服务公开的任何方法都需要此属性。

    [OperationContract]
    string GetData(string value);
    

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

    该屏幕截图显示了 Solution Explorer 中的 Service1 文件。

  2. 在编辑器中,找到以下行:

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

  1. 将参数的类型 value 更改为字符串,如下所示:

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

测试 WCF 服务

若要测试创建的 WCF 服务,请执行以下步骤:

  1. F5 运行服务。

    WCF 测试客户端窗体随即显示并加载服务。

  2. IService1 下,双击 GetData() 方法。

    “GetData”选项卡显示在 WCF 测试客户端窗体中。

    显示 WCF 测试客户端窗体中的 GetData 方法的屏幕截图。

  3. GetData 选项卡的“请求”框中,选择“值”字段并输入 Hello

    显示 GetData 选项卡中的“值”字段的屏幕截图。

  4. 选择 “调用 ”按钮。 如果出现 “安全警告 ”对话框,请选择“ 确定”。

    结果显示在 “响应 ”框中。

    显示“GetData”选项卡中的“响应”框中显示的结果的屏幕截图。

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

访问 WCF 服务

创建并测试 WCF 服务后,可以从项目引用它,并使用它来生成客户端应用程序。

引用 WCF 服务

若要从项目引用 WCF 服务,请执行以下步骤:

  1. 选择 “文件>添加新>项目”。

  2. “添加新项目” 窗口中,选择 C# 或 Visual Basic Windows 窗体应用(.NET Framework) 项目。 选择 “下一步”,然后选择 “创建” 以创建项目。

  3. 解决方案资源管理器中,右键单击新项目的项目节点,然后选择 “添加>服务引用”。

    此时会显示 “添加服务引用 ”对话框。

  4. 选择“发现”

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

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

  5. 选择 “确定 ”以添加服务引用。

生成客户端应用程序

若要使用 WCF 服务引用生成客户端应用程序,请执行以下步骤。

  1. 解决方案资源管理器 中双击 Windows 窗体应用中的 Form1.csForm1.vb

    窗体将在 Windows 窗体设计器中打开。

  2. 通过从菜单中选择“视图>工具箱”打开工具箱,或者从键盘按 Ctrl+Alt+X

  3. 工具箱中,将 TextBox 控件、 标签 控件和 按钮 控件拖到窗体上。

    显示如何将控件添加到客户端应用程序窗体的屏幕截图。

  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 运行项目。 输入一些文本并选择按钮。 标签显示你输入了:,后面是你输入的文本。

    该屏幕截图演示了正在运行的客户端应用程序窗体中显示的结果。