Automapper v5忽略未映射的属性

时间:2016-10-11 09:58:18

标签: automapper automapper-5

以前当我使用Automapper v3.x时,只需添加.IgnoreUnmappedProperties()扩展名就可以忽略未映射的属性

public static class AutoMapperExtensions
{

public static IMappingExpression<TSource, TDestination> IgnoreUnmappedProperties<TSource, TDestination>(this IMappingExpression<TSource, TDestination> expression)
{
    var typeMap = Mapper.FindTypeMapFor<TSource, TDestination>();
    if (typeMap != null)
    {
        foreach (var unmappedPropertyName in typeMap.GetUnmappedPropertyNames())
        {
            expression.ForMember(unmappedPropertyName, opt => opt.Ignore());
        }
    }

        return expression;
    }
}

如何重写此扩展以与V5.x一起使用。我当然可以在每个属性中添加以下内容。

.ForMember(dest => dest.LastUpdatedBy, opt => opt.Ignore())

或不致电

Mapper.AssertConfigurationIsValid();

1 个答案:

答案 0 :(得分:10)

您可以使用新的CreateMap方法参数执行此操作,并指定所需的验证。

CreateMap<TSource, TDestination>(MemberList.None)

MemberList.None 应该可以解决问题。您还可以在源验证或目标验证之间切换。

Automapper - Selecting members to validate