abpvnext关于事件发布和订阅的注意事项

2023-05-16

最近在一个已经写了两个本地事件订阅的handler类上添加一个事件订阅方法,并实现自己想要的业务逻辑。但是调试了n多次就是看不到接收消息的效果。 后来忙着做老系统业务去了就暂时没关注这个问题了。今天又来调试这个问题,然后刚才打开abp官网看了一眼,突然看到一句话

本地订阅事件文档里一句话“一个服务可以实现 ILocalEventHandler<TEvent> 来处理事件.”。参考链接:Local Event Bus | Documentation Center | ABP.IO 。我检查了一下自己的handler类,看看类定义时是否继承引入了那个订阅不出来的新的事件。

结果一看,确实是在handler类定义这里少引用了一个本地事件类。我下面实现代码有写3个事件订阅,但是这里只引用了2个事件类, 如下图所示

 

找到原因后我就给类添加上引用新的事件类引用代码  ,ILocalEventHandler<PublishTenantToDataDic>

加上这个引用之后,我新加的订阅立马就能进入调试断点了。

如下图所示:

 


总结:

abpvnext实现事件发布时,需要注入ILocalEventBus,代码如:

 public class MyService : ITransientDependency
    {
        private readonly ILocalEventBus _localEventBus;

        public MyService(ILocalEventBus localEventBus)
        {
            _localEventBus = localEventBus;
        }
        
        public virtual async Task ChangeStockCountAsync(Guid productId, int newCount)
        {
            //TODO: IMPLEMENT YOUR LOGIC...
            
            //PUBLISH THE EVENT
            await _localEventBus.PublishAsync(
                new StockCountChangedEvent
                {
                    ProductId = productId,
                    NewCount = newCount
                }
            );
        }
    }

在另一端写代码订阅接收事件时,也要注意引入ILocalEventHandler,代码如:

 public class MyHandler
        : ILocalEventHandler<StockCountChangedEvent>,
          ITransientDependency
    {
        public async Task HandleEventAsync(StockCountChangedEvent eventData)
        {
            //TODO: your code that does somthing on the event
        }
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

abpvnext关于事件发布和订阅的注意事项 的相关文章

  • 微信小程序使用video组件时的一些坑

    xff08 1 xff09 mp4视频用video组件播放会卡顿 绿屏 尤其是在快进 拖动时间条时 在video组件上 xff0c 试试加个custom cache 61 false 属性 xff0c 可以完美解决卡顿 绿屏的现象 xff0
  • java中JFrame中函数removeAll的用法

    解答链接 用baidu搜了半天搜不出来 xff0c 用google一下就出来了 下面用自己的代码来解释下removeAll xff08 xff09 的用法 注意一定要在getContentPane xff08 xff09 中用removeA
  • ROS中的package.xml详解

    span class token prolog lt xml version 61 34 1 0 34 gt span span class token tag span class token tag span class token p
  • (一)了解Freertos

    关于Freertos FreeRTOS非常适合使用微控制器或小型微处理器的深度嵌入式实时应用程序 这种类型的应用程序通常包含硬实时需求和软实时需求 软实时需求 是那些规定了一个时间截止日期的需求 但是违反这个截止日期并不会使系统崩溃 例如
  • 如何关闭iOS系统自动更新提示?

    原文链接 xff1a https www zhihu com question 37297197 打开iPhone或者iPad的Safari浏览器 xff0c 复制以下网址并从自带浏览器打开 https oldcat me web NOOT
  • 大数据高级开发工程师——大数据相关工具之三 Maxwell

    文章目录 大数据相关工具Maxwell数据实时同步工具Maxwell 简介Maxwell工作原理MySQL Binlog 介绍1 Binlog简介2 Binlog的日志格式 Mysql 实时数据同步方案对比开启MySQL的BinlogMax
  • TF-IDF算法详解及sklearn代码实现

    目录 1 基本介绍 xff08 1 xff09 TF xff08 词频 Term Frequency xff09 xff08 2 xff09 IDF xff08 逆向文件频率 Inverse Document Frequency xff09
  • UEFI下Windows启动引导的顺序(附带linux双系统)

    这里均以64位系统 xff08 windows和linux均是 xff09 xff0c gpt分区 xff0c UEFI引导作为例子 xff0c 现在基本上不会不支持吧 windows下UEFI引导文件的载入顺序 主板启动windows的一
  • 在ROS环境下用yolov3-tiny训练自己的数据集

    由于整个过程新建 修改 设置的文件和参数较多 所以我先放张整个流程分析图在这 xff0c 方便大家结合下列步骤去更好理解 0 提前准备 xff1a 下载darknet xff08 yolov3 xff09 并编译 span class to
  • ROS下使用usb_cam驱动读取摄像头数据

    因为darknet ros会直接订阅指定的图像话题名 xff0c 然后对图像进行检测 xff0c 绘制检测框 xff0c 并发布相应的检测话题 xff0c 因此首先需要找一个能够发布图像话题的ROS包 xff0c 这里经推荐使用ROS官方提
  • python 各种加密

    背景 加密学习 对称加密 对称密钥加密 xff0c 又叫私钥加密 即信息发送的方和接受方用一个密钥去加密和揭秘数据 最大的优势是 加解密速度快 xff0c 适合对大量数据进行加密 xff0c 对称加密的缺点是密钥的管理和分配 xff0c 换
  • 参加中国移动开发者大会有感

    作为我校CSDN俱乐部的主席 xff0c 我很荣幸受到CSDN的邀请参加中国移动开发者大会 xff0c 下面写点自己的感悟 xff1a 移动互联网应用大时代已经到来 xff0c 所有的IT应用都将移动化 xff0c 所有的信息服务都将移动化
  • IntelD435摄像头将深度图与摄像头进行像素对齐(并抽帧保存)

    coding 61 utf 8 import pyrealsense2 as rs import numpy as np import cv2 import os 创建一个管道 pipeline 61 rs pipeline Create
  • python3 可视化COCO格式json文件目标检测矩形框

    import os import json import argparse from PIL import Image ImageDraw ImageFont FONT SIZE 61 13 2 IMAGE FONT 61 ImageFon
  • 对比图像清晰度(模糊度)之灰度方差算法 python代码实现

    灰度方差算法 图像最清晰 xff0c 图像中的高频分量也最多 xff0c 该算法以图像所有像素的灰度平均值为参考 xff0c 对每个像素点的灰度值求差后求平方和 xff0c 然后用像素总数标准化 xff0c 它表征了图像灰度变化的平均程度
  • pytorch使用 ROIalign 代码实例

    batch size 61 x shape 0 all roi align feats 61 for i in range batch size hmap1 s 61 out hmap 1 i hmap1 s 61 hmap1 s unsq
  • python resize dicom(dcm)代码

    from glob import glob import os import pydicom import numpy as np import cv2 dcm list 61 sorted os listdir 39 xxxx 39 fo
  • 基于opencv和ffmpeg的图片转换成视频的两种方法实现,可生成H264格式

    opencv转换图片为视频 xff08 生成视频格式为MJPG xff09 encoding UTF 8 import glob as gb import cv2 图片文件夹地址 img path 61 gb glob 34 G temp
  • VGG16提取图片特征

    import os import numpy as np import torch import torch nn import torchvision models as models from torch autograd import
  • 防火墙之数据包过滤iptables

    内容简介 防火墙的概述 1 iptables简介 2 iptables基础 3 iptables语法 4 iptables实例 案例详解 xff08 一 xff09 防火墙的简介 防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合

随机推荐

  • Ubuntu apt-get 和 pip 更换源

    Ubuntu系统自带的源都是国外的网址 xff0c 国内用户在使用的时候网速比较慢 一个软件的下载是十分痛苦的 xff0c 这里讲解一下如何将国外源更换为国内源 xff0c 让你的网速Biu Biu Biu 更换apt get数据源 1 备
  • Linux如何解决动态库的版本控制

    xff08 换句话说 xff0c soname不是真实存在的文件 xff0c 只是在此库中和将来调用此库的文件中保存的一个名字 xff0c 在加载时去找这个名字 xff0c 使用时创建一个软连接来指向真实文件 xff0c 这样真实文件的版本
  • C语言中可变参数函数实现原理

    C函数调用的栈结构 可变参数函数的实现与函数调用的栈结构密切相关 xff0c 正常情况下C的函数参数入栈规则为 stdcall 它是从右到左的 xff0c 即函数中的最右边的参数最先入栈 例如 xff0c 对于函数 xff1a void f
  • Linux串口测试应用程序

    1 Linux终端 串口 210开发板有4个串口 2440开发板有3个串口 在2440开发板中三个串口设备对应如下 串口名字 主设备号 次设备号 s3c2410 serial0 204 64 s3c2410 serial1 204 65 s
  • 开发板上syslog使用方法小结

    首先我们需要先确认我们的开发板上是否安装了syslog服务 xff0c 在开发板的文件系统下输入syslogd help命令查看如果不支持就是busybox的版本太低了 当确定安装了后我们根据help显示的默认配置文件来查看该配置文件是否存
  • Perl中文件读取操作

    一 打开 关闭文件 语法为open filevar filename xff0c 其中filevar为文件句柄 xff0c 或者说是程序中用来代表某文件的代号 xff0c filename为文件名 xff0c 其路径可为相对路径 xff0c
  • web服务器之mongoose:安装

    引言 Mongoose开源项目的主页是http code google com p mongoose Mongoose是一个web服务器 xff0c 通过提供一个web接口给它 xff0c 它可以嵌入到现有的应用程序中去 Mongoose
  • web服务器之mongoose:核心处理模块

    引言 前面我们介绍了Mongoose所有的几个主要的数据结构mg context mg connection mg request info xff0c 还有Mongoose的生命主线 有了这些基础就可以来看看Mongoose的核心处理工作
  • mtd-utils工具的使用

    在ubuntu 10 04上交叉编译编译 mtd utils 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • 2020-12-29 DOS命令启动MySQL服务时,出现(系统错误5,拒绝访问)的错误提示

    在用DOS命令启动MySQL服务时 xff0c 出现 xff08 系统错误5 xff0c 拒绝访问 xff09 的错误提示 xff0c 这是由于我们操作的权限不足造成的 xff0c 需要以管理员身份启动 xff0c 解决问题方法如下 1 W
  • 柔性管理法则与柔性管理案例

    转载自 xff1a http www caecp cn News News 954 html 柔性管理是在研究人们心理和行为规律的基础上采用非强制方式 xff0c 在人们心目中产生一种潜在的说服力 xff0c 从而把组织意志变为人们自觉的行
  • linux 设备驱动开发基本概念

    任何一个计算机系统的运转都是系统中软硬件共同努力的结果 xff0c 没有硬件的软件是空中楼阁 xff0c 而没有软件的硬件则只是一堆废铁 硬件是底层基础 xff0c 是所有软件得以运行的平台 xff0c 代码最终会落实为硬件上的组合逻辑与时
  • 怎样快速判断两个ip地址是否处于同一子网(不用转二进制,不用按位与运算)

    1 使用 256 子网掩码最后一段的数字 xff0c 得到每个子网中的设备数量 xff1b 2 用设备数将0 255编号进行分段 xff0c 在同一子网中的设备会在同一网段 xff1b 例如 xff1a 主机A IP 61 61 48 16
  • stm32 寄存器操作一看就会

    1 寄存器是什么 xff1f 可以查百度 xff0c 查看详情 我 的总结 xff1a 在嵌入式里面寄存器非常非常重要重 xff0c 就是实现软硬件的接口 xff0c 几乎所有的功能操作都是通过操作寄存器来实现的 2 寄存器操作 xff0c
  • 判断两个Ip地址是否同属一个子网-Java

    span class token keyword import span java span class token punctuation span util span class token punctuation span span
  • ABPVNEXT 创建项目运行提示Could not find the bundle file ‘/libs/abp/core/abp.css‘ for the bundle ‘Basic.Globa

    本人实验时用的abp5 3 1 关于ABP新建项目初始运行提示错误 xff1a Could not find the bundle file 39 libs abp core abp css 39 for the bundle 39 Bas
  • win10系统 Docker 安装和配置

    下载地址 xff1a Get Docker Docker Documentation 一 首先需要开启硬件虚拟化及Hyper V功能 如何开启硬件虚拟化 xff0c 自行百度 可在任务管理器的性能中查看虚拟化是否开启 安装Hyper V x
  • win10 Docker安装RabbitMQ -linux同样适用

    1 查看RabbitMQ镜像 xff0c 管理员方式启动cmd或者powershell xff0c 运行下面的命令 xff0c 注意 需要加上 management xff0c 否则是没有对应的管理界面UI的 xff1a 执行 docker
  • windows10下安装的docker 导出镜像到另一个电脑

    1 在需要导出的windows系统中启动命令窗口 xff0c 或者启动powershell xff0c 记得以管理员方式启动 2 在需要导出的windows系统中启动 docker xff0c 可以看到已有镜像 xff1a 复制一个镜像的I
  • abpvnext关于事件发布和订阅的注意事项

    最近在一个已经写了两个本地事件订阅的handler类上添加一个事件订阅方法 xff0c 并实现自己想要的业务逻辑 但是调试了n多次就是看不到接收消息的效果 后来忙着做老系统业务去了就暂时没关注这个问题了 今天又来调试这个问题 xff0c 然