[英]Automapper Upgrade FindTypeMapFor<>
我正在将旧的 .NET Framework 应用程序更新为最新支持的 Automapper nuget(从 v3.3.1 到 v10.0.0)。 原始代码以可怕的方式扩展了 automapper,我已经能够将其转换为使用内置方法,除了这个:
// Ignores all destination properties which would otherwise be mapped by convention.
public static IMappingExpression<TSource, TDestination> IgnoreUnMapped<TSource, TDestination>(this IMappingExpression<TSource, TDestination> expression)
{
TypeMap map = Mapper.FindTypeMapFor<TSource, TDestination>();
foreach (var property in map.GetCustomPropertyMaps()
.Where(p => p.CustomExpression == null)
.Select(p => p.DestinationProperty.Name))
{
expression.ForMember(property, opt => opt.Ignore());
}
return expression;
}
我找到了这个页面,它提供了 v4.2 的解决方法,但不再适用于 v10。
这需要转换,但这是 Automapper 作者留给实际必须维护软件的人的唯一选择:
var typeMapConfiguration = (TypeMapConfiguration)expression;
foreach (var property in typeMapConfiguration.TypeMap.GetUnmappedPropertyNames())
{
expression.ForMember(property, opt => opt.Ignore());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.