AutoMapper:运行时类型跳过给定的成员

时间:2015-11-30 13:43:29

标签: c# .net automapper

有没有办法配置AutoMapper在使用它来映射运行时类型时跳过某些属性。 我创建了一个地图

Mapper.CreateMap(typeA, typeB)

然后,如果我需要跳过属性,我添加

.ForMember("propertyA", prop => prop.Ignore)

这很好。问题是如何在更多属性中实现这一点,并且在编码时不知道这些属性。 所以我需要跳过某些列表中的所有属性。 基本上我认为我需要这样的东西:

.ForAllMembers(opt => opt.Condition(prop => !skipThese.Contains(prop.MemberName)))

1 个答案:

答案 0 :(得分:1)

所以,经过一些搜索,我把它作为一种扩展方法:

    public static IMappingExpression<TSource, TDestination> ExcludingThese<TSource, TDestination>(this IMappingExpression<TSource, TDestination> expression, List<String> exclude)
    {
        foreach (String stringVar in exclude)
        {
            expression.ForMember(stringVar, excl => excl.Ignore());
        }
        return expression;
    }