AutoMapper:在使用多个IValueResolvers时,Resolve()的调用顺序问题
创始人
2024-09-23 17:00:50
0

我们可以通过将多个IValueResolvers连接成一个链来控制Resolve()方法的调用顺序。这可以通过使用ValueResolver的Chain方法实现,如下所示:

public class Source
{
    public int Value1 { get; set; }
    public int Value2 { get; set; }
}

public class Destination
{
    public int Value { get; set; }
}

public class ValueResolver1 : IValueResolver
{
    public int Resolve(Source source, Destination destination, int destMember, ResolutionContext context)
    {
        return source.Value1 + source.Value2;
    }
}

public class ValueResolver2 : IValueResolver
{
    public int Resolve(Source source, Destination destination, int destMember, ResolutionContext context)
    {
        return destMember * 2;
    }
}

public class Program
{
    static void Main(string[] args)
    {
        Mapper.Initialize(cfg => {
           cfg.CreateMap()
              .ForMember(dest => dest.Value, opt => opt.MapFrom()
                                                 .Chain());
        });
        
        var source = new Source { Value1 = 1, Value2 = 2 };
        var destination = Mapper.Map(source);
        
        Console.WriteLine(destination.Value); // Output: 6
    }
}

在上面的示例中,我们使用了ValueResolver1和ValueResolver2来执行属性映射。通过使用Chain方法,我们可以将这两个解析器连接成一个链,并确定其Resolve方法的调用顺序,从而实现正确的属性映射。

相关内容

热门资讯

透视存在!aapoker透视脚... 透视存在!aapoker透视脚本,四川长牌皮皮游戏挂,wpk教程(有挂辅助);1.四川长牌皮皮游戏挂...
透视计算!wepoker免费永... 透视计算!wepoker免费永久脚本,新荣耀平台辅助,wepoke教程(有挂辅助)1、不需要AI权限...
透视神器!智星菠萝可以辅助吗,... 透视神器!智星菠萝可以辅助吗,八闽掌上十八卦脚本,玩家教程(有挂神器),支持语音通讯、好友开房及战队...
透视有挂!德普之星辅助器app... 透视有挂!德普之星辅助器app,小程序13水辅助,攻略方法(有挂辅助)1、玩家可以在德普之星辅助器软...
透视科技!aapoker辅助功... 透视科技!aapoker辅助功能,中至余干安装挂,安装教程(有挂辅助);最新版2024是一款经典耐玩...
透视软件!德普之星有没有挂,雀... 1、透视软件!德普之星有没有挂,雀友会广东潮汕辅助透视,专业教程(有挂透视);详细教程。2、雀友会广...
透视ai!hhpoker透视功... 自定义丽水都来大菠萝脚本辅助系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器...
透视私人局!aapoker辅助... 透视私人局!aapoker辅助器是真的吗,真人天天途游破解安装包,解密教程(有挂神器)准备好在真人天...
透视私人局!wepoker底牌... 透视私人局!wepoker底牌透视脚本下载,随意玩透视辅助,安装教程(有挂软件);原来确实真的有挂(...
透视黑科技!wpk辅助器是真的... 这是一款非常优秀的小程序牵手跑得快辅助器 ia辅助检测软件,能够让你了解到小程序牵手跑得快辅助器中牌...