博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
11-EasyNetQ之多态发布和订阅
阅读量:4556 次
发布时间:2019-06-08

本文共 1420 字,大约阅读时间需要 4 分钟。

你能够订阅一个接口,然后发布基于这个接口的实现。

让我们看下一个示例。我有一个接口IAnimal和两个实现Cat和Dog:

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接口,并接收Cat和Dog这个两个类:

bus.Subscribe
("polymorphic_test", @interface => { var cat = @interface as Cat; var dog = @interface as Dog; if (cat != null) { Console.WriteLine("Name = {0}", cat.Name); Console.WriteLine("Meow = {0}", cat.Meow); } else if (dog != null) { Console.WriteLine("Name = {0}", dog.Name); Console.WriteLine("Bark = {0}", dog.Bark); } else { Console.WriteLine("message was not a dog or a cat"); } });

让我们发布Cat和Dog:

var cat = new Cat{    Name = "Gobbolino",    Meow = "Purr"};var dog = new Dog{    Name = "Rover",    Bark = "Woof"};bus.Publish
(cat);bus.Publish
(dog);

注意:必须显示的指定发布了IAnimal接口。EasyNetQ在发布和订阅方法中指定了泛型去发布和订阅。

英文地址:https://github.com/EasyNetQ/EasyNetQ/wiki/Polymorphic-Publish-and-Subscribe

本文地址:http://www.cnblogs.com/HuangLiang/p/EasyNetQ_Polymorphic_Publish_and_Subscribe.html

转载于:https://www.cnblogs.com/HuangLiang/p/EasyNetQ_Polymorphic_Publish_and_Subscribe.html

你可能感兴趣的文章
开源项目托管GitHub
查看>>
Unity学习笔记—— 常用脚本函数
查看>>
.getCellType()的几种类型值
查看>>
linux中启动 java -jar 后台运行程序
查看>>
运行web项目端口占用问题
查看>>
Java Spring-IOC和DI
查看>>
【NOIP1999】【Luogu1015】回文数(高精度,模拟)
查看>>
Linux上安装Python3.5
查看>>
crt安装
查看>>
git切换分支报错:error: pathspec 'origin/XXX' did not match any file(s) known to git
查看>>
c++中static的用法详解
查看>>
转 我修改的注册表,但是程序运行起来,还是记着以前的
查看>>
图片轮播功能
查看>>
第六周小组作业:软件测试和评估
查看>>
linux Cacti监控服务器搭建
查看>>
debian(kali Linux) 安装net Core
查看>>
centos 7防火墙设置
查看>>
自定义进度条(圆形、横向进度条)
查看>>
spark-streaming-kafka采坑
查看>>
9.Mongodb与python交互
查看>>