C# Web API Mapster基本使用

安装包:Mapster

1.注册

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

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

cs 复制代码
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.使用

cs 复制代码
 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]

相关推荐
爱学习的程序媛几秒前
【Web前端】优化Core Web Vitals提升用户体验
前端·ui·web·ux·用户体验
zabr2 分钟前
花了 100+ 篇笔记,我整理出 了一套 AI Agent 工程完全指南
前端·后端·agent
软弹14 分钟前
深入理解 React Ref 机制:useRef 与 forwardRef 的协作原理
前端·javascript·react.js
YaHuiLiang17 分钟前
Ai Coding浪潮下的前端:“AI在左,裁员在右”
前端
雪碧聊技术25 分钟前
前端vue代码架子搭建
前端·javascript·vue.js·前端项目代码框架搭建
爱学习的程序媛26 分钟前
【Web前端】前端用户体验优化全攻略
前端·ui·交互·web·ux·用户体验
han_29 分钟前
JavaScript设计模式(二):策略模式实现与应用
前端·javascript·设计模式
x***r15133 分钟前
Notepad++ 8.6 安装教程:详细步骤+自定义安装路径(附注意事项)
linux·前端·javascript
格林威34 分钟前
工业相机图像采集:Grab Timeout 设置建议——拒绝“假死”与“丢帧”的黄金法则
开发语言·人工智能·数码相机·计算机视觉·c#·机器视觉·工业相机
Hilaku36 分钟前
为什么很多工作 5 年的前端,身价反而卡住了?🤷‍♂️
前端·javascript·面试