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]

相关推荐
0思必得05 小时前
[Web自动化] Selenium处理动态网页
前端·爬虫·python·selenium·自动化
东东5166 小时前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino6 小时前
图片、文件的预览
前端·javascript
PfCoder7 小时前
C#中定时器之System.Timers.Timer
c#·.net·visual studio·winform
layman05288 小时前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔8 小时前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李8 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN8 小时前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒8 小时前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局
PHP武器库8 小时前
ULUI:不止于按钮和菜单,一个专注于“业务组件”的纯 CSS 框架
前端·css