Automapper中的条件映射从参数
创始人
2024-09-23 16:01:10
0

在Automapper中,可以使用Condition方法来创建条件映射。该方法接受一个Func委托,该委托定义了条件的逻辑。

以下是一个使用条件映射的示例:

using AutoMapper;
using System;

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

public class Destination
{
    public bool IsPositive { get; set; }
}

public class PositiveValueConverter : IValueConverter
{
    public bool Convert(int sourceMember, ResolutionContext context)
    {
        return sourceMember > 0;
    }
}

class Program
{
    static void Main(string[] args)
    {
        var config = new MapperConfiguration(cfg =>
        {
            cfg.CreateMap().ConvertUsing();
            cfg.CreateMap()
                .ForMember(dest => dest.IsPositive, opt => opt.Condition((src, dest) => src.Value != 0));
        });

        var mapper = config.CreateMapper();
        var source = new Source { Value = 10 };
        var destination = mapper.Map(source);

        Console.WriteLine(destination.IsPositive); // Output: True
    }
}

在上述示例中,我们创建了一个PositiveValueConverter类来将整数转换为布尔值。然后,我们使用cfg.CreateMap().ConvertUsing()来告诉Automapper在这两种类型之间进行转换时使用该转换器。

接下来,我们创建了一个Source和一个Destination类,它们包含要映射的属性。然后,我们使用cfg.CreateMap().ForMember(dest => dest.IsPositive, opt => opt.Condition((src, dest) => src.Value != 0))来创建映射。

在这个条件中,我们检查Source对象的Value属性是否等于0。如果不等于0,则映射会继续进行,并调用PositiveValueConverterValue属性的值转换为布尔类型,并将结果赋值给IsPositive属性。

最后,我们使用上述配置创建一个mapper对象,并使用mapper.Map(source)方法执行映射。最终,我们将destination.IsPositive打印到控制台上,输出为True

相关内容

热门资讯

玩家必备教程!微乐小程序麻将自... 玩家必备教程!微乐小程序麻将自建房辅助工具插件,微乐自建房脚本免费入口(开挂自建房)软件1、起透看视...
指导大家!微乐自建房辅助工具,... 指导大家!微乐自建房辅助工具,微乐家乡麻将自建房辅助app(开挂自建房)器1)微乐家乡麻将自建房辅助...
实测发现!微乐自建房辅助工具脚... 实测发现!微乐自建房辅助工具脚本,微乐家乡麻将自建房辅助app(开挂自建房)教程1、微乐家乡麻将自建...
科技介绍!微信微乐自建房辅助工... 科技介绍!微信微乐自建房辅助工具,微乐自建房脚本免费入口(开挂自建房)插件1、许多玩家不知道微信微乐...
玩家必看科普!微乐微信自建房辅... 玩家必看科普!微乐微信自建房辅助工具插件,微乐自建房脚本免费入口(开挂自建房)脚本1、金币登录送、破...
最新技巧!微乐家乡麻将自建房辅... 最新技巧!微乐家乡麻将自建房辅助app,微乐小程序免费黑科技(开挂自建房)脚本暗藏猫腻,小编详细说明...
分享开挂内幕!微乐自建房辅助工... 分享开挂内幕!微乐自建房辅助工具免费app,微乐小程序免费黑科技(开挂自建房)技巧一、微乐自建房辅助...
最新技巧!微乐自建房辅助工具免... 最新技巧!微乐自建房辅助工具免费app,微乐小程序免费黑科技(开挂自建房)攻略1、上手简单,内置详细...
每日必备!微乐自建房辅助工具脚... 每日必备!微乐自建房辅助工具脚本,微乐小程序免费黑科技(开挂自建房)器1、微乐自建房辅助工具脚本辅助...
专业讨论!微信微乐自建房辅助工... 专业讨论!微信微乐自建房辅助工具,微乐自建房脚本免费入口(开挂自建房)教程1、金币登录送、破产送、升...