--- applyTo: "src/Fengling.Member.Web/Application/IntegrationEventConverters/*.cs" --- # 集成事件转换器开发指南 ## 开发原则 ### 必须 - **转换器定义**: - 必须实现 `IIntegrationEventConverter` 接口。 - 转换器负责从领域事件创建集成事件。 - 集成事件使用 `record` 类型定义。 - **注册**:框架自动注册转换器。 ### 必须不要 - **直接发布**:不要直接发布集成事件,应通过转换器。 ## 文件命名规则 - 转换器应放置在 `src/Fengling.Member.Web/Application/IntegrationEventConverters/` 目录下。 - 转换器文件名格式为 `{Entity}{Action}IntegrationEventConverter.cs`。 ## 代码示例 **文件**: `src/Fengling.Member.Web/Application/IntegrationEventConverters/UserCreatedIntegrationEventConverter.cs` ```csharp using Fengling.Member.Domain.DomainEvents; using Fengling.Member.Web.Application.IntegrationEvents; namespace Fengling.Member.Web.Application.IntegrationEventConverters; public class UserCreatedIntegrationEventConverter : IIntegrationEventConverter { public UserCreatedIntegrationEvent Convert(UserCreatedDomainEvent domainEvent) { var user = domainEvent.User; return new UserCreatedIntegrationEvent( user.Id, user.Name, user.Email, DateTime.UtcNow); } } ```