我不确定这里是否有线程问题.在页面加载时,我正在执行两个Ajax请求,以从第三方API加载一些其他数据.以下是每种方法被调用的内容:
private List<CaseCommentModel> GetCaseCommentModels(string caseId) { var comments = CaseService.GetAllCaseCommentsByCaseId(caseId); Mapper.Reset(); Mapper.CreateMap<CrmCaseComment,CaseCommentModel>(); var caseCommentModels = Mapper.Map<List<CrmCaseComment>,List<CaseCommentModel>>(comments); return caseCommentModels; } private List<CaseAttachmentModel> GetCaseAttachmentModels(string caseId) { var attachments = AttachmentService.GetAttachmentsByParentId(caseId); Mapper.Reset(); Mapper.CreateMap<CrmAttachment,CaseAttachmentModel>(); var caseAttachmentModels = Mapper.Map<List<CrmAttachment>,List<CaseAttachmentModel>>(attachments); return caseAttachmentModels; }
有时两种反应都会成功但是,如果我刷新页面,有时会出现以下异常:
缺少类型映射配置或不支持的映射
解决方法
您应该每个应用程序生命周期只创建一次映射.因此,将每个特定的CreateMap移动到应用程序启动.
您遇到的问题可能与在另一个线程调用Mapper.Reset()之前进行映射的竞争有关.