我正在做一个 asp.net 核心和身份的项目,我正在尝试使用自动映射器在 IdentityUser 子类与其对应的 DTO 之间创建映射配置我已经对其他类进行了类似的配置,它工作正常,但是对于 IdentityUser 子类,它的行为有所不同:
这是我的身份用户子类:
public partial class Collaborateur : IdentityUser
{
public Collaborateur() : base()
{
this.Activites = new HashSet<ActiviteCollaborateur>();
this.ActeursAvantVente = new HashSet<ActeurAvv>();
}
public string Nom { get; set; }
public string Prenom { get; set; }
public string Telephone { get; set; }
public Nullable<long> Matricule { get; set; }
public string Structure { get; set; }
public string Login { get; set; }
public RoleEnum Role { get; set; }
public virtual ICollection<ActiviteCollaborateur> Activites { get; set; }
public virtual ICollection<ActeurAvv> ActeursAvantVente { get; set; }
public virtual Agence Agence { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime LastModified { get; set; }
}
其对应的 DTO :
public class CollaborateurDTO : BaseDTO
{
public string Nom { get; set; }
public string Prenom { get; set; }
public string Telephone { get; set; }
public Nullable<long> Matricule { get; set; }
public string Structure { get; set; }
public string Login { get; set; }
public RoleEnum Role { get; set; }
}
协作配置文件配置类:
public class CollaborateurProfile : Profile
{
CollaborateurProfile()
{
CreateMap<Collaborateur, CollaborateurDTO>().ReverseMap();
CreateMap<Collaborateur, Collaborateur>()
.ForMember(x => x.Id, opt => opt.Ignore())
.ForMember(x => x.CreatedAt, opt => opt.Ignore())
.ForMember(x => x.LastModified, opts => opts.MapFrom(src => DateTime.UtcNow));
}
}
和启动.cs :
services.AddAutoMapper();
它停在这条线上
Missing MethodException 未由用户代码处理System.Private.CoreLib.ni 中发生了类型为"System.MissingMethodException"的异常.dll但未在用户代码中处理
我错误地在评论中链接的问题中回答了这个问题(https://stackoverflow.com/a/46567611/7131186(
这是我的答案:
就我而言(似乎这也是您的情况(,这是一个复制/粘贴问题。我不知何故最终为我的映射配置文件提供了一个 PRIVATE 构造函数:
using AutoMapper;
namespace Your.Namespace
{
public class MappingProfile : Profile
{
MappingProfile()
{
CreateMap<Animal, AnimalDto>();
}
}
}
(请注意CTOR前面缺少的"公众"(
它编译得很好,但是当AutoMapper尝试实例化配置文件时,它(当然!(找不到构造函数!