MASA Framework -- EventBus入门与设计( 五 )


var assemblies = new[]{    typeof(UserHandler).Assembly};builder.Services.AddEventBus(assemblies);

程序集: 手动指定Assembly集合 -> MasaApp.GetAssemblies() -> AppDomain.CurrentDomain.GetAssemblies()
但由于NetCore按需加载,未使用的程序集在当前域中不存在,因此可能会导致部分事件以及Handler的对应关系未正确保存,因此可通过手动指定Assembly集合或者修改全局配置中的Assembly集合来修复这个问题
  1. 通过EventBus发布事件,Handler出错,但数据依然保存到数据库中
①. 检查是否禁用事务
  1. DisableRollbackOnFailure是否为true (是否失败时禁止回滚)
  2. UseTransaction是否为false (禁止使用事务)
②. 检查当前数据库是否支持回滚 。例如: 使用的是Mysql数据库,但回滚数据失败,请查看
本章源码Assignment11
https://github.com/zhenlei520/MasaFramework.Practice
开源地址MASA.Framework:https://github.com/masastack/MASA.Framework
MASA.EShop:https://github.com/masalabs/MASA.EShop
MASA.Blazor:https://github.com/BlazorComponent/MASA.Blazor
如果你对我们的 MASA Framework 感兴趣,无论是代码贡献、使用、提 Issue,欢迎联系我

经验总结扩展阅读