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会调用我们自定义的解析器,根据解析器的逻辑来决定是否映射扩展方法。

相关内容

热门资讯

热点推荐!扑克时间辅助软件,德... 热点推荐!扑克时间辅助软件,德州免费辅助神器app,细节方法(从前真的有挂)德州免费辅助神器app辅...
透视透视!wpk透视脚本链接,... 此外,数据分析德州(心悦填大坑辅助器下载)辅助神器app还具备辅助透视行为开挂功能,通过对客户心悦填...
推荐一款!wepoke透明挂,... 推荐一款!wepoke透明挂,wepoke一定有挂,解密教程(原本真的是有挂)1、wepoke一定有...
透视代打!wpk透视辅助软件,... 透视代打!wpk透视辅助软件,哈灵脚本修改器,透明教程(有挂辅助);科技安装教程;136704302...
秘笈分析!gg扑克发牌机制测试... 秘笈分析!gg扑克发牌机制测试,aapoker有外挂,扑克教程(本然真的是有挂)1)aapoker有...
透视科技!wepoker透视脚... 透视科技!wepoker透视脚本免费下载,上饶打炸作弊,细节方法(有挂技巧)关于上饶打炸作弊机制的,...
重大科普!wepokeai辅助... 一、wepower辅助器简介了解软件请加微:136704302wepower辅助器是一款在线扑克游戏...
透视辅助!wepoker辅助器... 1、透视辅助!wepoker辅助器怎么用,顺欣茶楼开挂,安装教程(有挂透明);详细教程。2、顺欣茶楼...
今日公布!德州ai辅助神器,智... 今日公布!德州ai辅助神器,智星德州菠萝有挂吗,AA德州教程(果然真的有挂)(1)今日公布!德州ai...
透视了解!hhpoker透视脚... 1、透视了解!hhpoker透视脚本,科勒天天踢有没有挂作笔,德州教程(有挂技巧)。2、科勒天天踢有...