开源博客项目Blog .NET Core源码学习(5:mapster使用浅析)

  开源博客项目Blog使用mapster框架映射对象,主要是在数据库表对象及前端数据对象之间进行映射,本文学习并记录项目中mapster的使用方式。
  App.Hosting项目的program文件中调用builder.Services.AddMapper函数进行对象模型自动映射,而该函数定义在App.Framwork项目的ServiceCollectionExtension类中(命名空间App.Framwork.Mapper.Extensions),函数中主要做了两件事:
  1)调用 TypeAdapterConfig.GlobalSettings.Scan扫描并注册当前解决方案的四个项目中所有继承自IRegister接口的非抽象类(函数内部逻辑见下面截图);
  2)调用TypeAdapterConfig.GlobalSettings.Default.NameMatchingStrategy设置目标类和源类中属性名称按Pascal规则匹配,并使用全局设置将映射策略应用到所有的映射配置。

在这里插入图片描述

  整个解决方案中IRegister接口的继承关系如下图所示,由于大部分源类和目标类中的属性名称相同,仅在App.Application项目中针对ArticleInfo和ArticleInputDto、AccountDetailsDto和SysAccount、AccountDetailsDto和SysUser等三组类中的特定属性进行了属性映射配置。
在这里插入图片描述

  最后是在App.Application项目和App.Hosting的服务类和控制类中调用mapster的adapt函数进行对象映射,在此不再一一列举。
  开源博客项目Blog中使用的主要是mapster的基本用法,后续会结合mapster官网教程继续学习mapster的其它用法。

参考文献:
[1]https://gitee.com/miss_you/Blog
[2]https://www.donet5.com/Home/Doc
[3]https://github.com/MapsterMapper/Mapster
[4]https://github.com/rivenfx/Mapster-docs

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值