我正在将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/

10-09 00:16