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

开源博客项目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.kler.cn/a/104102.html

相关文章:

  • Prompt-Tuning源码分析
  • Hadoop3.0大数据处理学习3(MapReduce原理分析、日志归集、序列化机制、Yarn资源调度器)
  • 0030【Edabit ★☆☆☆☆☆】【布尔转字符串】Boolean to String Conversion
  • PROSTATEx-2 上前列腺癌的 3D CNN 分类
  • 基于 nodejs+vue城市轨道交通线路查询系统mysql
  • 面试题-React(十八):一文学会 React Router
  • Java--多态及抽象类与接口
  • 为什么POST请求经常发送两次?
  • 【Overload游戏引擎细节分析】standard材质Shader
  • Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (二)
  • SpringMVC Day 01:入门案例
  • 什么是空运特殊货物_箱讯科技国际物流管理平台
  • Arduino IDE + Esp32 Cam + 实现视频流 + 开发环境部署
  • python 数据保存格式的选择
  • 深入理解JVM虚拟机第十二篇:JVM中的线程说明
  • DevOps持续集成-Jenkins(2)
  • 最简单的修改linux系统上Docker的镜像源
  • 2023CSPJ 旅游巴士 —— dijkstra
  • MySQL: String 字符串相关函数整理
  • SOLIDWORKS 2024新功能 3D CAD三维机械设计10大新功能