Walkthrough: Creating and Accessing WCF Services
发布日期: 2016年4月
本演练演示如何创建一个简单Windows Communication Foundation (WCF)服务并进行测试,然后从 Windows 窗体应用程序访问它。
备注
以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅个性化 IDE。
创建服务
要创建 WCF 服务
在**“文件”菜单上指向“新建”,然后单击“项目”**。
在新建项目对话框中,展开 Visual Basic 或 Visual C# 节点,然后单击 WCF,接着是 WCF 服务库。 单击确定打开项目。
备注
这将创建可以测试和访问的工作服务。 以下两个步骤演示您可以如何修改使用不同数据类型的默认方法。 在实际应用中,您还会向服务中添加您自己的函数。
-
在解决方案资源管理器中、双击 IService1.vb 或 IService1.cs 并找到以下行:
[OperationContract] string GetData(int value);
<OperationContract()> Function GetData(ByVal value As Integer) As String
把
value
参数的类型更改为String
:[OperationContract] string GetData(string value);
<OperationContract()> Function GetData(ByVal value As String) As String
在上面的代码中,请注意
<OperationContract()>
或[OperationContract]
属性。 这些属性是由服务公开的任何方法所必需的。 -
在解决方案资源管理器中、双击 Service1.vb 或 Service1.cs 并找到以下行:
public string GetData(int value) { return string.Format("You entered: {0}", value); }
Public Function GetData(ByVal value As Integer) As String Implements IService1.GetData Return String.Format("You entered: {0}", value) End Function
更改值参数类型为
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
正在测试服务
若要测试 WCF 服务
按 F5 运行该服务。 WCF 测试客户端窗体将显示,而且它将加载此服务。
在WCF 测试客户端窗体中,双击 IService1 下的 GetData() 方法。 将显示 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 运行该项目。 输入一些文本,然后单击按钮。 该标签将显示“输入:”和您输入的文本。