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

  • 相关阅读:
    【C++入门系列】——命名空间和输入输出
    kettle pan.sh如何后台运行
    Java-多线程-ThreadPoolExecutor
    第19章 特殊工具与技术【C++】
    mysql 综合练习
    【owt-server】Internal Transport 内部流传输机制文档
    Java ClassLoader definePackage()方法具有什么功能呢?
    企业微信机器人对接GPT
    ADS Circuit Design Cookbook
    C#模拟PLC设备运行
  • 原文地址:https://blog.csdn.net/gc_2299/article/details/133955803