using AutoMapper; using MessageService.Domain.KeyObjects; using MessageService.WebApi.Application.Dtos; namespace MessageService.WebApi.Application.Message { public class MessageMapperConfig : Profile { public MessageMapperConfig() { // 1. 配置 QuoteInfo -> QuoteInfoResponse CreateMap(); // 2. 配置 MessageContent -> MessageContentResponse CreateMap() // 关键点:Body 是 object,由于我们在实体里写了 Body 计算属性 // AutoMapper 默认会识别到同名的 Body 属性并进行映射 // 如果你想显式指定逻辑,可以取消下面这行的注释: // .ForMember(dest => dest.Body, opt => opt.MapFrom(src => src.Body)) .ForMember(dest => dest.Ext, opt => opt.MapFrom(src => src.Ext)) .ForMember(dest => dest.Quote, opt => opt.MapFrom(src => src.Quote.MessageId == Guid.Empty ? null : src.Quote)); // 3. 配置 Message -> MessageResponse CreateMap() // 映射审计字段中的创建时间 .ForMember(dest => dest.CreationTime, opt => opt.MapFrom(src => src.CreationTime)) // 嵌套映射 Content .ForMember(dest => dest.Content, opt => opt.MapFrom(src => src.Content)); } } }