AutoMapper:访问v6.x中的目标元信息

时间:2017-07-01 20:08:00

标签: c# automapper

从AutoMapper 4移动到6

在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中,这不是我能看到的,有一个项集合,但这似乎包含整个映射(所有对象)的信息

1 个答案:

答案 0 :(得分:1)

这一切都消失了。捕获并在任何地方传递这种情况非常昂贵。您可能希望改为查看成员解析器。