演练:在 Windows 窗体中创建简单 WCF 服务
11/04/2016
本文内容
本演练演示如何创建一个简单的 Windows Communication Foundation (WCF) 服务,对其进行测试,然后从 Windows 窗体应用程序访问该服务。
备注
本文中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 你可能正在使用其他版本的 Visual Studio 或其他环境设置。 有关详细信息,请参阅个性化设置 IDE。
创建服务
打开 Visual Studio。
在“文件”菜单上,选择“新建”>“项目”。
在 " 新建项目 " 对话框中,展开 " Visual Basic " 或 " Visual c # " 节点,然后选择 " Wcf",然后选择 " wcf 服务库"。
单击“确定”以创建该项目 。
在“开始”窗口上,选择“创建新项目” 。
在 "创建新项目" 页上的 "搜索" 框中键入 " wcf 服务库"。 选择 " WCF 服务库" 的 "c #" 或 "Visual Basic" 模板,然后单击 " 下一步"。
提示
如果看不到任何模板,可能需要安装 Visual Studio 的 Windows Communication Foundation 组件。 选择 " 安装更多工具和功能 " 以打开 Visual Studio 安装程序。 选择 " 单个组件 " 选项卡,向下滚动到 " 开发活动",然后选择 " Windows Communication Foundation"。 单击“修改”。
在 " 配置新项目 " 页上,单击 " 创建"。
备注
这将创建可以测试和访问的工作服务。 以下两个步骤演示您可以如何修改使用不同数据类型的默认方法。 在实际应用中,您还会向服务中添加您自己的函数。
在 解决方案资源管理器 中,双击 " IService1 " 或 " IService1"。
查找以下行:
[OperationContract]
string GetData(int value);
Function GetData(ByVal value As Integer) As String
将参数的类型更改 value 为 string:
[OperationContract]
string GetData(string value);
Function GetData(ByVal value As String) As String
在上面的代码中,请注意或[OperationContract]属性。 这些属性是由服务公开的任何方法所必需的。
在 解决方案资源管理器 中,双击 " Service1 " 或 " Service1"。
查找以下行:
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 string GetData(string value)
{
return string.Format("You entered: {0}", value);
}
Public Function GetData(ByVal value As String) As String Implements IService1.GetData
Return String.Format("You entered: {0}", value)
End Function
测试服务
按 F5 运行该服务。 WCF 测试客户端 窗体随即出现并加载服务。
在“WCF 测试客户端”窗体中,双击 IService1 下的 GetData() 方法。 此时会显示 "工作" 选项卡。
在“请求”框中,选择“值”字段,并键入 Hello。
单击“调用”按钮。 如果出现 " 安全警告 " 对话框,请单击 "确定"。 结果将显示在 响应 框中。
在“文件”菜单上单击“退出”,关闭测试窗体。
访问服务
引用 WCF 服务
在 " 文件 " 菜单上,指向 " 添加 ",然后单击 " 新建项目"。
在 " 新建项目 " 对话框中,展开 " Visual Basic " 或 " Visual c # " 节点,选择 " Windows",然后选择 " Windows 窗体应用程序"。 单击“确定”,打开项目。
右键单击 WindowsApplication1,然后单击“添加服务引用”。 此时将出现“添加服务引用”对话框。
在 “添加服务引用” 对话框中,单击 “发现”。
Service1 显示在 " 服务 " 窗格中。
单击“确定”,添加服务引用。
生成客户端应用程序
在解决方案资源管理器中,双击 Form1.vb 或 Form1.cs,打开 Windows 窗体设计器(如果尚未打开)。
从工具箱把 TextBox 控件、Label 控件和 Button 控件拖到窗体中。
双击 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;
}
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
在解决方案资源管理器中,右键单击 WindowsApplication1,然后单击“设为启动项目”。
按 F5 运行项目。 输入一些文本,然后单击按钮。 此标签显示 "您输入的内容:",并显示您输入的文本。
另请参阅