一、定义服务契约
ServiceContract特性:该特性可被用来作用于子类或者接口之上,并允许重复声明。
OperationContract特性:只有定义了该特性的方法才会被放入服务之中。
具体代码实现:
l 首先在VS中新建一个类库:
新建类库
l 创建一个接口文件IHelloService:
创建接口文件
l 文件中添加引用System.ServiceModel
添加引用
l 然后在接口文件上方加入using System.ServiceModel;
引入命名空间
l 在接口上方定义服务契约(ServiceContract),然后在接口方法上定义操作契约(OperationContract)
定义契约
l 添加一个实现类实现IHelloService接口
添加实现类
l 实现接口的方法SayHello()
实现方法
二、创建宿主程序
ServiceHost类型:当IIS或者WAS作为宿主程序时,IIS和WAS会自动创建ServiceHost类型
手动创建的基本语法public ServiceHost(Type ServiceType,params Uri[] baseAddress);
具体代码如下(控制台应用程序):
l 解决方案里面添加项目为控制台应用程序:
添加控制台应用程序
l 如第一个添加引用(System.ServiceModel)
添加引用
l 由于要在宿主程序绑定对象,所以还需添加引用using
System.ServiceModel.Channels
添加引用
l 在项目中定义一个宿主程序,包括定义基地址、服务绑定、以及契约接口。
定义宿主程序
l 宿主程序还需定义销毁服务对象的方法
销毁服务对象
l 定义基地址,服务契约实现类型、服务契约接口以及服务绑定
定义基地址
l 注意要添加HelloService项目引用,构造服务对象:
添加引用
l 定义打开服务的方法
定义打开服务的方法
l 注意由于我们创建ServiceHost对象没有实例化,所以我们需要对对象进行封装
l 添加构造方法调用创建宿主程序的方法
l 主程序中调用服务开启方法
l 生成并启动服务
三、创建客户端程序访问服务
l 添加新的控制台应用程序,命名为HelloClient
l 还需添加以下引用:System.ServiceModel、System.ServiceModel.Channels、HelloService,然后using进行
加入以下代码:
硬编码定义服务契约
然后在主程序中利用代理调用服务
成功示例:
这就是第二天的全部内容,到此你也可以定义你的第一个WCF程序啦。要坚持下去哦!如果你觉得对您有用的话,可以点赞、收藏、转发哦!谢谢大家的支持哦~