目录
0.简介
1.环境
2.知识点
3.详细过程
1)打开 Visual Studio 2019 ,下载所需插件
2)创建WCF服务应用项目
3)打开 【IService1.cs 】在此处定义服务函数
4)打开 【Service1.svc.cs】实现服务函数
5)测试服务接口
0.简介
- 本文属于一个系列中的第一篇文章,这个系列会实现一个项目,这个项目主要使用Visual Studio 2019作为开发工具,创建WCF服务、创建Web应用程序调用WCF服务等功能
- 本文主要介绍如何通过 Visual Studio 2019 来创建第一个WCF服务,这个服务实现的功能是返回数学中Pi的值。
1.环境
Visual Studio 2019 + c# + windows11
2.知识点
- WCF指的是Windows Communication Foundation,是微软推出的用于构建分布式应用程序的框架。WCF提供了一种统一的编程模型,用于在不同的计算机、操作系统和网络环境中进行通信。
- WCF支持多种通信协议,包括HTTP、TCP、MSMQ等,可以在不同的传输协议之间进行切换。它还支持多种消息格式,例如XML、JSON等。
- 使用WCF,开发人员可以定义服务合同(Service Contract)和数据合同(Data Contract),通过这些合同来描述服务接口和数据结构。然后,WCF提供了一套工具和库,使得开发人员可以轻松地实现和部署这些服务。
- WCF提供了丰富的功能,例如安全性、事务处理、消息路由、可靠性等。它还支持扩展机制,允许开发人员根据自己的需求来定制和扩展框架的功能。
3.详细过程
1)打开 Visual Studio 2019 ,下载所需插件
点击【创建新项目】
在搜索框中输入【WCF】,找到【WCF Service Application】或【WCF服务应用程序】
如果有的话,请跳过下一步的安装插件
如果没有的话,需要下载对应插件,如下图,找到【安装多个工具和功能】
在打开的界面,勾选4个工具以及1个WCF
然后点击右下角的【修改】,下载过程会比较慢,请耐心等待,下载完成后还需要重启
下载完成后,就可以看到可选项目中有【WCF服务应用程序】了
2)创建WCF服务应用项目
接上文,选择下一步
【如果你使用C#语言】,就选C#的(我用的是C#的)
【如果你使用VB语言】,就选下面这个带VB的
修改名称和项目储存位置,点创建
创建后,可以看到如下目录结构,比较重要的两个文件是【IService1.cs】和【Service1.svc.cs】,这两个文件一个负责定义(地址在哪里,绑定怎么做,合同怎么做),一个负责实现函数
3)打开 【IService1.cs 】在此处定义服务函数
删除【namespace WcfService1】中默认带的函数,加上自己需要的函数,我这里需要一个返回Pi值的函数,所以名字为【PiValue】,返回类型为double
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
[ServiceContract]
public interface IService1
{
[OperationContract]
double PiValue();
// TODO: 在此添加您的服务操作
}
【IService1.cs 】全部代码如下,【CompositeType】中的内容我没做修改
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WcfService1
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
[ServiceContract]
public interface IService1
{
[OperationContract]
double PiValue();
// TODO: 在此添加您的服务操作
}
// 使用下面示例中说明的数据约定将复合类型添加到服务操作。
[DataContract]
public class CompositeType
{
bool boolValue = true;
string stringValue = "Hello ";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
}
4)打开 【Service1.svc.cs】实现服务函数
删除【 public class Service1 : IService1】中无用的代码,替换为自己的函数实现,我这里主要通过库【Math】返回Pi的值
double pi = Math.PI;
return pi;
【Service1.svc.cs】全部代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WcfService1
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
// 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 Service1.svc 或 Service1.svc.cs,然后开始调试。
public class Service1 : IService1
{
public double PiValue()
{
double pi = Math.PI;
return pi;
}
}
}
5)测试服务接口
按调试快捷键【F5】,会出现如下调试界面,是专用于测试的客户端
可以看到有我们刚才实现的方法【PiValue】,双击【PiValue()】,会出现右侧的界面,然后点击调用
我们可以看到有返回值出现,说明我们的WCF服务成功
--END--