繁体   English   中英

Automapper 升级 FindTypeMapFor<>

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM