AutoMapper:运行时类型跳过给定的成员
本文关键字:成员 运行时 类型 AutoMapper | 更新日期: 2023-09-27 18:25:00
在使用AutoMapper映射运行时类型时,是否有方法将其配置为跳过某些属性。我创建了一个地图
Mapper.CreateMap(typeA, typeB)
然后,如果我需要跳过一个属性,我会添加
.ForMember("propertyA", prop => prop.Ignore)
这很好。问题是如何为更多的属性实现这一点,而这些属性在编码时还不知道。所以我需要跳过一些列表中的所有属性。基本上我想我需要这样的东西:
.ForAllMembers(opt => opt.Condition(prop => !skipThese.Contains(prop.MemberName)))
因此,经过一些搜索,我将其作为一种扩展方法:
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;
}