SuperAPI AI 工具集

dotnet-domain-events-generator

编程与开发

查看项目

更新于 10-16 09:35

技能介绍

用途:在 .NET 整洁架构项目中,按 DDD 模式生成领域事件(Domain Events)及其处理器,并在实体中触发事件,配合 MediatR 通知处理器与 Outbox 模式实现可靠的事件投递,使发布者不必了解订阅者。

主要能力:提供 IDomainEvent 标记接口(继承 MediatR 的 INotification,含 Id、OccurredOnUtc)与抽象记录 DomainEvent;按实体动作生成事件记录,如 Created、Updated、Deactivated、Deleted,也可写出带属性与构造函数的重事件;在实体工厂方法与更新、停用等方法中调用 RaiseDomainEvent 触发事件;生成 INotificationHandler 处理器,可包含日志、发邮件、创建默认设置等副作用;提供 Outbox 模式的 OutboxMessage 实体、EF Core 配置(jsonb 内容、按未处理时间过滤的索引)、在 SaveChangesAsync 中把领域事件转为 OutboxMessage 的逻辑,以及基于 Quartz 的 ProcessOutboxMessagesJob 处理未处理消息并发布。

使用方式:资料未提供安装命令或具体调用方式;给出的代码模板按 Domain/Abstractions、Domain/{Aggregate}/Events、Application/{Feature}/EventHandlers、Infrastructure/Outbox 等目录组织,需按模板手动落地到对应项目层。

适用场景:需要以领域事件解耦副作用的 .NET 整洁架构 / DDD 项目,尤其是要求事件持久化后可靠投递、避免进程内事件丢失的场景。

限制:资料未说明版本要求、付费方式、可用的平台、性能或效果数据;Outbox 处理器使用 Quartz 且标注 DisallowConcurrentExecution,类型通过程序集限定名反序列化,需确保类型可解析,否则会记录错误并标记已处理。