我正在将AutoMapper与Profiles一起使用,并且效果很好。最近,我找到了CreateMissingTypeMaps配置,并且,如果按照我的理解,它可以正常工作,则可以使我的开发更快,而不必创建简单的映射。
我已经使用AddProfile将配置文件添加到我的配置文件中,然后,我执行了CreateMissingTypeMaps配置。
前任:
-------创建配置------------
var config = new MapperConfiguration(cfg =>
{
cfg.AddProfile<PersonServiceMapperProfile>();
cfg.CreateMissingTypeMaps = true;
});
-------在我的PersonServiceMapperProfile中------
internal class PersonServiceMapperProfile : Profile
{
protected override void Configure()
{
CreateMap<PersonData, ProfileViewModel>().ConvertUsing<PersonDataToProfileViewModel>();
}
}
当CreateMissingTypeMaps配置设置为true时,概要文件不再起作用。我的自定义映射未调用。
如何解决这个问题?
最佳答案
我最近从AutoMapper 3升级到6后遇到了同样的问题,并且在GitHub中发现了一个针对AutoMapper的问题,该问题揭示了此问题的解决方案:
Source: Issue 2008, TylerCarlson1
但是,不应将其用于“简单映射”。 CreateMissingTypeMaps功能仅适用于在编译时才知道映射的情况,例如EF Dynamic Proxies。不应将其用于已知类型的原因是因为CreateMap和编译功能使您可以快速测试并防止由于错别字,名称不匹配,新属性或已删除属性等导致的映射失败。使用预期的编译功能,因此请充分利用它。
关于c# - 具有CreateMissingTypeMaps和AddProfile的AutoMapper,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36562025/