C# Web API Mapster基本使用

发布于:2025-09-13 ⋅ 阅读:(27) ⋅ 点赞:(0)

安装包:Mapster

1.注册


MyRegister.Scan(); // 全局配置
//builder.Services.AddMapster(); // 需要安装Mapster.DependencyInjection包
builder.Services.AddScoped<IMapper,Mapper>();

2.配置(可不进行配置直接使用也行)

public class MyRegister : IRegister
{
    public static void Scan()
    {
        TypeAdapterConfig.GlobalSettings.Scan(typeof(MyRegister).Assembly);
    }
    public void Register(TypeAdapterConfig config)
    {
        config.ForType<MenuListDto, MenuList>()
                .Map(dest => dest.Name,src=>src.Describe) // 将Describe映射给Name
                .IgnoreNullValues(true)//忽略空值映射
                .Ignore(t=> t.Id); // 忽略ID
        config.ForType<User, UserDto>().Ignore(t => t.Id);
    }
}

3.使用


 public class DemoServicer:IDemoServicer
 {
	private ISqlSugarClient _sqlSugarClient;
     private IMapper _mapper;
     /// <summary>
     /// 
     /// </summary>
        /// <param name="sqlSugarClient"></param>
     /// <param name="mapper"></param>
     public MenuListServicer(IMapper mapper,ISqlSugarClient sqlSugarClient)
     {
         _mapper = mapper;
            _sqlSugarClient = sqlSugarClient;
     }
	 public MenuListDto[] GetList()
	 {
        var arr =  _sqlSugarClient.Queryable<MenuList>().ToArray();
		return arr.Adapt<MenuListDto[]>();
		//或者直接使用
		return _mapper.Map<MenuListDto[]>(arr);
		
	 }
 }

属性页可以添加特性进行忽略[AdaptIgnore]


网站公告

今日签到

点亮在社区的每一天
去签到