前言:现在王大叔养了大批猪,赚了很多钱。但是最近发现养鸡也可以赚很多钱,他就像扩展业务开始养鸡。又过两年他发现市场对狗的需求量很大,他开始养狗。那么他改怎么做呢,不可能去修改猪住的地方把鸭子和狗放里面那么维护起来非常不便,那么我们就要进行扩展,在盖一个鸭圈和一个狗圈。现在我们看下图

第一步:定义三个接口

 养猪契约
/// <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承载多个接口的更多相关文章

  1. 老老实实学习WCF[第二篇] 配置wcf

    老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...

  2. [老老实实学WCF] 第二篇 配置WCF

    老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...

  3. RabbitMQ学习总结 第二篇:快速入门HelloWorld

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  4. 学习KnockOut第二篇之Counter

                                                                        学习KnockOut第二篇之Counter        欲看此 ...

  5. JavaWeb学习总结第二篇--第一个JavaWeb程序

    JavaWeb学习总结第二篇—第一个JavaWeb程序 最近我在学院工作室学习并加入到研究生的项目中,在学长学姐的带领下,进入项目实践中,为该项目实现一个框架(用已有框架进行改写).于是我在这里记录下 ...

  6. (转)[老老实实学WCF] 第二篇 配置WCF

    第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Collections. ...

  7. 跟初学者学习IbatisNet第二篇

    在上一篇里面我们知道了什么是IbatisNet,并且知道了如何用IbatisNet进行简单的增删改查的操作,在这一篇文章里面我们主要介绍一下IbatisNet操作存储过程. 我们一般把存储过程分为两种 ...

  8. Egret入门学习日记 --- 第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容)

    第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容) 既然选好了Egret,那我就要想想怎么学了. 开始第一步,先加个Q群先,这不,拿到了一本<E ...

  9. #PHP#微信支付 第二篇 JSAPI 调用统一下单接口获取预支付交易数据

    上一篇讲到成功获取 openid,本篇要调用微信统一接口创建预支付交易单,并获取到相关数据,以便(后边)在微信内调起H5支付 第三步,调用微信统一下单接口创建预支付交易单 微信统一下单API是微信支付 ...

随机推荐

  1. vue2.* 目录结构分析 数据绑定 循环渲染数据 数据渲染02

    一.目录 结构分析 node_modules:项目依赖文件(也可以说是模块) src:开发时所用的资源 assets:静态资源文件 App.vue:根组件(最基础的公共页面) main.js:实例化v ...

  2. VC++获取一个GB级大文件的字节大小

    常规的获得小文件(2.1GB以下)的字节大小可以使用ftell,函数 ftell 用于得到文件位置指针当前位置相对于文件首的偏移字节数.使用fseek函数后再调用函数ftell()就能非常容易地确定文 ...

  3. 【Linuc-CentOS 】通过yum安装 指定版本的nodejs

    原 [Linuc-CentOS ]通过yum安装 指定版本的nodejs 2018年06月21日 06:56:32 黑夜的风 阅读数:884    版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  4. 【luogu P3258 [JLOI2014]松鼠的新家】 题解

    题目链接:https://www.luogu.org/problemnew/show/P3258 谁说树剖过不去会RE呢? 我今天就是要强行树剖了 树剖强艹 #include <cstdio&g ...

  5. Spotlight On Oracle安装和使用

    Spotlight On Oracle安装和使用 软件版本:Version: 5.0.1.1022 注册码:063920179532918005749 Site Message:Quest Free ...

  6. 无法加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项

    未能加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配. (异常来自 HRESULT:0x80131040). 有时候我们创建了一个类库,我们 ...

  7. centos6.4 安装code::blocks

    今天下午闲着没事尝试在自己的PC中的CentOS上装一个Code::Blocks,因为是Linux菜鸟折腾了一下午才基本算搞定但依然有疑惑: 在网上各种谷哥度娘最后才发现还是官方的文档最靠谱:看这里. ...

  8. node.js环境下写的vue项目

    github地址:https://github.com/anxizhihai/JournalismProject.git

  9. JAVA中的一些内置方法

    Math 函数: Math.E //自然常数e Math.abs(12.3); //返回该值的绝对值 Math.ceil(12.3); //向上取整 Math.floor(12.3); //向下取整 ...

  10. MySQL初体验--安装MySQL

    操作系统版本:redhat 6.7 64位 [root@mysql ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server releas ...