自动映射器扩展方法

时间:2018-08-16 21:33:58

标签: c# automapper

尝试制作自动映射器扩展方法,以便我可以替换(加密或解密)字符串。

我希望使用扩展方法来做到这一点,以便我可以动态浏览所有属性,而不必手动指定每个属性

CreateMap<User, UserDto>().DecryptStrings();
CreateMap<UserDto, User>().EncryptStrings();

public static IMappingExpression<TSource, TDestination> DecryptStrings<TSource, TDestination>(this IMappingExpression<TSource, TDestination> map)
{
    var sourceType = typeof(TSource);

    foreach (var prop in sourceType.GetProperties())
    {
        if (prop.PropertyType == typeof(string))
        {        
            var name = (string)prop.GetValue(sourceType);
            var replacementValue = "test";
            map.ForMember(prop.Name, o => o.MapFrom(s => replacementValue));
        }
    }
    return map;
}

继续获取System.Reflection.TargetException:'对象与目标类型不匹配'

这里很感谢任何帮助

0 个答案:

没有答案