8,EasyNetQ-多态发布和订阅
您可以订阅一个接口,然后发布该接口的实现。
我们来看一个例子。 我有一个接口IAnimal和两个实现猫和狗:
public interface IAnimal {string Name { get; set; } }public class Cat : IAnimal {public string Name { get; set; }public string Meow { get; set; } }public class Dog : IAnimal {public string Name { get; set; }public string Bark { get; set; } }
我可以订阅IAnimal并获得猫和狗类:
bus.Subscribe<IAnimal>("polymorphic_test", @interface =>{var cat = @interface as Cat;var dog = @interface as Dog;if (cat != null){Console.Out.WriteLine("Name = {0}", cat.Name);Console.Out.WriteLine("Meow = {0}", cat.Meow);}else if (dog != null){Console.Out.WriteLine("Name = {0}", dog.Name);Console.Out.WriteLine("Bark = {0}", dog.Bark);}else{Console.Out.WriteLine("message was not a dog or a cat");}});
让我们发布一只猫和一只狗:
var cat = new Cat {Name = "Gobbolino",Meow = "Purr" };var dog = new Dog {Name = "Rover",Bark = "Woof" };bus.Publish<IAnimal>(cat); bus.Publish<IAnimal>(dog);
请注意,我必须明确指定我发布IAnimal。 EasyNetQ使用“发布”和“订阅”方法中指定的泛型类型将发布路由到订阅。
转载于:https://www.cnblogs.com/zd1994/p/8650968.html
8,EasyNetQ-多态发布和订阅相关推荐
- 面试被问到Redis实现发布与订阅,手摸手教
简介 Redis发布与发布功能(Pub/Sub)是基于事件座位基本的通信机制,是目前应用比较普遍的通信模型,它的目的主要是解除消息的发布者与订阅者之间的耦合关系. Redis作为消息发布和订阅之间的服 ...
- Meteor:发布与订阅
我们可以使用安全的方法让用户端不直接操作数据库,但是还是可以直接读取数据库内容,如果我们还需要保护私有的数据存储,在客户端直接使用Collection.find(),这样的操作方式在实际的项目中并不会 ...
- 知方可补不足~SQL2008中的发布与订阅模式~续
上一回介绍了如何在sql2008中建立一个数据库的发布者,今天来说一下如何建立一个订阅者,其实订阅者也是一个数据库,而这个数据库是和发布者的数据结构相同的库,它们之间通过SQL代理进行数据上的同步. ...
- etcd分布式之消息发布与订阅
分布式之消息发布与订阅: 应用中用到的一些配置信息放到etcd上进行集中管理 索引的元信息和服务器集群机器的节点状态存放在etcd中 分布式日志收集系统 ...
- 023_Jedis的发布和订阅
1. Redis为我们提供了publish/subscribe(发布/订阅)功能.我们可以对某个channel(频道)进行subscribe(订阅),当有人在这个channel上publish(发布) ...
- Redis发布与订阅(pub/sub)
Redis发布与订阅(pub/sub) 本文档翻译自: http://redis.io/topics/pubsub . SUBSCRIBE . UNSUBSCRIBE 和 PUBLISH 三个命令实现 ...
- RabbitMQ官方中文入门教程(PHP版) 第三部分:发布/订阅(Publish/Subscribe)
2019独角兽企业重金招聘Python工程师标准>>> 发布/订阅 在上篇教程中,我们搭建了一个工作队列.每个任务之分发给一个工作者(worker).在本篇教程中,我们要做的之前完全 ...
- Redis实现发布与订阅(转)
简介 Redis发布与发布功能(Pub/Sub)是基于事件座位基本的通信机制,是目前应用比较普遍的通信模型,它的目的主要是解除消息的发布者与订阅者之间的耦合关系. Redis作为消息发布和订阅之间的服 ...
- Redis中的发布与订阅的概念与以命令行的方式实现发布订阅举例
场景 什么是发布与订阅 发布订阅是一种应用程序(系统)之间通讯,传递数据的技术手段,特别是在异构(不同语言)系统之间的作用非常明显. 发布订阅: 类似于微信中关注公众号/订阅号,公众号/订阅号发布的文 ...
- Redis中的发布与订阅
redis中实现发布与订阅相对于zookeeper非常简单.直接使用publish和subscribe就行. subscrible news; 订阅news这个channel publish news ...
最新文章
- 技术图文:NumPy 的简单入门教程
- HTML form 标签的 accept-charset 属性
- C++:从子类访问父类的私有函数
- STM32 基础系列教程 1- CubeMX+GPIO
- python gui界面启动脚本、点击按钮执行脚本_如何使用PyQt在按钮单击上调用python脚本...
- 从setTimeout,onclick传参看js函数作为参数
- canopy算法流程_Canopy聚类算法(经典,看图就明白)
- JavaScript类型强制解释
- Spring Cloud 微服务实战系列-Spring Boot再次入门(一)
- 接口测试用例设计思路_基于python语言的接口自动化demo小实战
- python manager模块_Python 并发模块
- boolean怎么用_用 C++ 和 Java 写算法,差别大吗?(文末有福利)
- Qt获取本机硬盘序列号,不受IDE硬盘与SCSI硬盘类型影响
- PC蓝牙加串口调试助手调试蓝牙设备
- 树莓派/Ubuntu联网以及查看本机的IP
- QT系列之曲线图绘制(推荐QCustomPlot)
- 特技替身拜拜,迪士尼机器超人要上天了!
- 扫雷小游戏(两小时完成)
- 永恒之蓝ms17_010漏洞复现
- 第四章 资本主义制度的形成及其本质
热门文章
- long 雪花算法_深入分析mysql为什么不推荐使用uuid或者雪花id作为主键
- php小总结之 mysqli面向过程、面向对象和PDO在增删改查使用中的一些小区别
- 二十三、Java异常捕获与处理
- 最长单调递增子序列——动态规划
- centos7.x 网卡自动关闭,总是需要手动去启动情况解决方法
- 拉取 google.golang.org/grpc 报错
- JQuery 实现表格数据行上移与下移效果
- 获取json格式的内容数据时,使用的方法避免空指针
- 从 AVFrame 中取出帧(YUV)保存为 Mat 格式
- vs 2012/2013 等工具中,使用正则表达式,查找、替换