2017-07-01 46 views
0

访问目的地元信息从AutoMapper 4移动到6AutoMapper:在6.x版

在ITypeConverter,我们如何访问父范围内,所以我们知道正在填充什么属性,在4版本:

context.PropertyMap.DestinationProperty 

所以以下是可能的:

public class UserDetailsConvertor : ITypeConverter<OAuthProfile, UserDetials> 
{ 
    public Dto.Accounts.UserDetials Convert(ResolutionContext context) 
    { 
     var src = context.SourceValue as OAuthProfile; 

     if (src == null) return null; 

     if (!context.PropertyMap.DestinationProperty.Name.Contains("Internal")) 
     { 
      return new UserDetials() 
      { 
       Id = src.Id 
      }; 
     } 

     if (src.InternalAccountId.IsNullOrEmpty()) 
     { 
      return null; 
     } 

     return new UserDetials() 
     { 
      Id = src.InternalAccountId 
     }; 
    } 
} 

注意,用户细节被映射到2个属性(内部和提供商)这就是上述条件逻辑被整理。

在V6这是不是从我所看到的,有一个项目集合posisble,但这似乎包含整个映射(所有对象)

回答

1

这就是全部了信息。在任何地方捕捉和传递这种情况都非常昂贵。您可能需要查看成员解析器。