我们一起学习WCF 第二篇WCF承载多个接口
前言:现在王大叔养了大批猪,赚了很多钱。但是最近发现养鸡也可以赚很多钱,他就像扩展业务开始养鸡。又过两年他发现市场对狗的需求量很大,他开始养狗。那么他改怎么做呢,不可能去修改猪住的地方把鸭子和狗放里面那么维护起来非常不便,那么我们就要进行扩展,在盖一个鸭圈和一个狗圈。现在我们看下图
第一步:定义三个接口
养猪契约
/// <summary>
/// 服务契约
/// </summary>
[ServiceContract]
public interface IPigService
{
[OperationContract]
string Pig();
}
养鸭契约
[ServiceContract]
public interface IDuckService
{
[OperationContract]
string Duck();
}
养狗契约 [ServiceContract]
public interface IDogService
{
[OperationContract]
string Dog();
}
接口
第二步:实现三个接口内容(我就把它放同一个类,其实不建议这么做,分开好保持功能的单一性便于维护)
public class WcfService:IPigService,IDogService,IDuckService
{
public string Pig()
{
return "哈喽,我是养猪专业户";
} public string Duck()
{
return "哈喽,我开始扩展养鸭业务";
} public string Dog()
{
return "哈喽,狗的生意不错,我也开始扩展";
}
}
实现接口
第三步:我们在此实现服务端
其他代码参考第一篇
host.AddServiceEndpoint(typeof(IPigService), binding, "");
host.AddServiceEndpoint(typeof (IDogService), binding, "");
host.AddServiceEndpoint(typeof(IDuckService), binding, "");
核心代码
第四步:客户端引用,效果如下
这一篇就讲完了比较简单,但是用处个人觉得蛮大的。下一篇着手写头消息的发送和接受
我们一起学习WCF 第二篇WCF承载多个接口的更多相关文章
- 老老实实学习WCF[第二篇] 配置wcf
老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...
- [老老实实学WCF] 第二篇 配置WCF
老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...
- RabbitMQ学习总结 第二篇:快速入门HelloWorld
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- 学习KnockOut第二篇之Counter
学习KnockOut第二篇之Counter 欲看此 ...
- JavaWeb学习总结第二篇--第一个JavaWeb程序
JavaWeb学习总结第二篇—第一个JavaWeb程序 最近我在学院工作室学习并加入到研究生的项目中,在学长学姐的带领下,进入项目实践中,为该项目实现一个框架(用已有框架进行改写).于是我在这里记录下 ...
- (转)[老老实实学WCF] 第二篇 配置WCF
第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Collections. ...
- 跟初学者学习IbatisNet第二篇
在上一篇里面我们知道了什么是IbatisNet,并且知道了如何用IbatisNet进行简单的增删改查的操作,在这一篇文章里面我们主要介绍一下IbatisNet操作存储过程. 我们一般把存储过程分为两种 ...
- Egret入门学习日记 --- 第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容)
第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容) 既然选好了Egret,那我就要想想怎么学了. 开始第一步,先加个Q群先,这不,拿到了一本<E ...
- #PHP#微信支付 第二篇 JSAPI 调用统一下单接口获取预支付交易数据
上一篇讲到成功获取 openid,本篇要调用微信统一接口创建预支付交易单,并获取到相关数据,以便(后边)在微信内调起H5支付 第三步,调用微信统一下单接口创建预支付交易单 微信统一下单API是微信支付 ...
随机推荐
- jquery Mobile入门—多页面切换示例学习
1.在JQuery Mobile中,多个页面的切换是通过<a>元素.并将<href>属性设置为#+对应的id号的方式进行的. 2.多页面切换示例代码: 复制代码代码如下: &l ...
- PAT——1027. 打印沙漏
本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号:各行符号中心对齐:相邻两 ...
- 黑少微服务商店之Iron Cloud微服务开发云
近日,由黑少微服务研发团队推出的Iron Cloud微服务开发云已经正式对外提供服务,这是国内第一家基于云端操作的微服务专业开发工具. Iron Cloud 微服务开发云(www.ironz.com) ...
- Java面向对象的三个特征
首先,Java面向对象的三大特征: 三大特征: ▪ 封装 ▪ 继承 ▪ 多态 首先面向对象的第一个特性 封装 : 封装:就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操 ...
- JAVA中的一些内置方法
Math 函数: Math.E //自然常数e Math.abs(12.3); //返回该值的绝对值 Math.ceil(12.3); //向上取整 Math.floor(12.3); //向下取整 ...
- android学习:关于RelativeLayout叠放布局的问题
RelativeLayout布局关于元素叠加的问题 1.RelativeLayout布局中的元素如果要实现元素叠加必须设置 RelativeLayout.ALIGN_PARENT_TOP 这样元素 ...
- c#使用emit方法DB,实体相互转换
网上有很多ORM框架和数据库转换方法. c#由EF控制,但是大家知道的是影响效率和底层控制. 因此最近几个月一直在研究.最后产出了Hikari数据库连接池. 但是该库只是定位在连接池,无法有效进行后续 ...
- Ubuntu16.04上安装neo4j数据库
什么是neo4j数据库? neo4j数据库是图数据库的一种,属于nosql的一种,常见的nosql数据库还有redis.memcached.mongDB等,不同于传统的关系型数据库,nosql数据也有 ...
- c# 在WebBrowser中用SendMessage模拟鼠标点击
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 微信小游戏websocket支持https/wss
公司新项目需要支持wss,解决方法如下: https://blog.csdn.net/peter_teng/article/details/82866613 proxy_pass http://web ...