当前位置: 首页 > news >正文

开源博客项目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

http://www.lryc.cn/news/205378.html

相关文章:

  • Appium移动端自动测试框架,如何入门?
  • 外汇天眼:喜大普奔!困扰投资者的交易问题解决了!
  • UUID转16字节数组(Java)
  • 使用vue3 搭建一个H5手机端访问的项目
  • 【网络安全 --- 任意文件下载漏洞(1)】任意文件下载漏洞
  • 驱动开发day4(实现通过字符设备驱动的分布实现编写LED驱动,实现设备文件的绑定)
  • 《深入浅出.NET框架设计与实现》阅读笔记(一)
  • Flutter 类似onResume 监听,解决入场动画卡顿(2)
  • rabbitmq-3.8.15集群、集群镜像模式安装部署
  • import导入顺序杂乱的问题
  • Hadoop3教程(二十六):(生产调优篇)NameNode核心参数配置与回收站的启用
  • PaddleX场景实战:PP-TS在电压预测场景上的应用
  • pdf误删恢复如何恢复?分享4种恢复方法!
  • 简析新能源汽车充电桩设计与应用
  • Java零基础入门-算术运算符
  • java实现hbase数据导出
  • Unity之ShaderGraph如何实现旋涡效果
  • 【分布式】: 幂等性和实现方式
  • idea 设置serlvet 类模板(快捷生成servlet类)
  • SpringBoot自动配置原理解析 | 京东物流技术团队
  • AOP 笔记
  • 微信小程序导航退回及跳转 传参(navigateBack,navigateTo)
  • python实例代码介绍python基础知识
  • 【每日一题】掷骰子等于目标和的方法数
  • 霸王条款惹品牌争议,京东双11站在商家对立面?
  • 深度神经网络为何成功?其中的过程、思想和关键主张选择
  • 什么是服务器节点?
  • 水电站与数据可视化:洞察未来能源趋势的窗口
  • Mac运行Docker报错
  • 代码 $(“.btn“).click(function(){ 和代码 $(document).ready(function() 有啥区别?