AutoMapper忽略扩展方法
创始人
2024-09-23 13:00:24
0

在使用AutoMapper进行对象映射时,有时候我们希望忽略一些属性或者方法的映射。对于属性,可以使用AutoMapper提供的Ignore()方法来忽略属性的映射。但对于扩展方法,AutoMapper默认是不支持映射的。

解决这个问题的一种方法是创建一个自定义的解析器,并在解析器中忽略扩展方法的映射。下面是一个示例代码:

public class IgnoreExtensionMethodsResolver : IMemberResolver
{
    public ResolutionResult Resolve(ResolutionResult source)
    {
        // 忽略扩展方法的映射
        if(source.MemberType.IsDefined(typeof(ExtensionAttribute), false))
        {
            return source.New(null);
        }

        return source;
    }
}

// 使用自定义的解析器
Mapper.Initialize(cfg =>
{
    cfg.CreateMap()
       .ForMember(dest => dest.PropertyToIgnore, opt => opt.ResolveUsing());
});

在上面的代码中,我们创建了一个名为IgnoreExtensionMethodsResolver的自定义解析器,它实现了IMemberResolver接口。在Resolve方法中,我们判断如果要映射的成员类型被ExtensionAttribute标记了,就返回一个不包含任何值的ResolutionResult。这样,AutoMapper就会忽略这个扩展方法的映射。

然后,在配置AutoMapper时,我们使用ForMember方法来指定要忽略的属性,并将解析器IgnoreExtensionMethodsResolver传递给ResolveUsing方法。

这样,当进行对象映射时,AutoMapper会调用我们自定义的解析器,根据解析器的逻辑来决定是否映射扩展方法。

相关内容

热门资讯

第九分钟带你明白!创思维透视下... 第九分钟带你明白!创思维透视下载链接,创思维激k看底牌辅助软件,必备教程(有挂总结)-哔哩哔哩创思维...
六分钟带你发现!哥哥打大a辅助... 【亲,福建天天开心辅助工具 这款游戏可以开挂的,确实是有挂的,很多玩家在这款福建天天开心辅助工具中打...
3分钟带你讲解!乐达大连穷胡小... 大家好,今天小编来为大家解答乐达大连穷胡小鸡满天飞这个问题咨询软件客服可以免费测试直接加微信(136...
四分钟带你透视!789大菠萝攻... 789大菠萝攻略开挂教程视频分享装挂详细步骤在当今的网络游戏中,789大菠萝攻略作为一种经典的娱乐方...
9分钟带你讲解!丽水都莱脚本辅... 9分钟带你讲解!丽水都莱脚本辅助,福建天天开心辅助工具,教你攻略(有挂教程)-哔哩哔哩 >>您好:软...
第4分钟带你明白!福建大玩家透... 第4分钟带你明白!福建大玩家透视,赣牌圈有挂吗,辅助教程(有挂总结)-哔哩哔哩福建大玩家透视ai黑科...
第十分钟带你发现!皮皮跑胡子修... 第十分钟带你发现!皮皮跑胡子修改器,友友联盟免费辅助器,专业教程(有挂总结)-哔哩哔哩1、下载安装好...
一分钟带你科普!叮叮川南游戏辅... 【亲,叮叮川南游戏辅助软件 这款游戏可以开挂的,确实是有挂的,很多玩家在这款叮叮川南游戏辅助软件中打...
8分钟带你讲解!拱趴游戏诀窍,... 8分钟带你讲解!拱趴游戏诀窍,爱来大菠萝辅助iq,扑克教程!(果真有挂)-哔哩哔哩爱来大菠萝辅助iq...
第六分钟带你开挂!免费随意玩辅... 第六分钟带你开挂!免费随意玩辅助器,四川熊猫辅助软件视频,教你攻略(的确有挂)-哔哩哔哩;无需打开直...