Net8集成AutoMap

news/2024/5/19 22:41:58 标签: .net, .netcore, c#

一、概述

使用Net8 搭建WebApi,需要集成AutoMap,方便开发。

二、实现

2.1 安装 AutoMapper

在这里插入图片描述

2.2 创建AutoProfile配置类继承Profile
namespace AnNeng.Cad.WebApi.Config
{
    using AnNeng.Service.Application.CadAndOss.Dto;
    using AnNeng.Service.Application.Common.Dto;
    using AutoMapper;
    /// <summary>
    /// AutoMapper配置类.
    /// </summary>
    public class MyMappingProfile : Profile
    {
        /// <summary>
        /// 配置需要的映射.
        /// </summary>
        public MyMappingProfile ()
        {
            CreateMap<EditRedisRequestInput, CreateCadFileInput>() ;
            CreateMap<CreateCadFileInput,EditRedisRequestInput>();
            // 如果要配置具体的字段映射,可以添加 如下:
            // CreateMap<EditRedisRequestInput, CreateCadFileInput>()
            //.ForMember(dest => dest.Property, opt => opt.MapFrom(src => src.AnotherProperty));
            // ... 其他映射配置  
            // ... 其他映射配置  
        }

    }
}
2.3 在Api 启动类 (Program.cs)里面配置AutoMap服务
// 添加AutoMapper服务  
builder.Services.AddAutoMapper(options =>
{
    // 可以在这里添加额外的配置,比如全局的ValueResolvers或TypeConverters  
    options.AddProfile<AnNengMappingProfile>(); // 添加你的映射配置Profile  
});

三、使用

在Sevice类或者控制器里面依赖注入IMapper

  private readonly IMapper _mapper;

  /// <summary>
  /// 构造函数.
  /// </summary>
  public MyService(
       IMapper mapper,
      ) 
  {
      _mapper = mapper;
  }

使用代码如下:

 EditRedisRequestInput editRedisRequestInput = new EditRedisRequestInput();
 editRedisRequestInput = _mapper.Map<EditRedisRequestInput>(input) ;

四、抛砖引玉

这边如果有新的映射关系每次都需要去MyMappingProfile 类里面添加对应的映射关系,怎么可以做到无需再MyMappingProfile 配置便可以实现映射?就如同ABP框架里面使用AutoMap一样。


http://www.niftyadmin.cn/n/5412082.html

相关文章

多媒体信息处理-重点知识-3. Feature Indexing and Retrieval

Chap 3. Feature Indexing and Retrieval 什么是索引&#xff1f; 为了提高数据集的检索效率而生成的结构化信息 基于特征的相似度匹配是多媒体数据检索方法的基础 从多媒体对象中提取重要特征&#xff0c;将其转化成高维特征向量存储在数据库中 相似性度量&#xff1a; 两种…

03-磁盘和文件管理

磁盘和文件管理 linux命令的分类 内部命令&#xff1a;属于Shell解析器的一部分 例如:cd 切换目录&#xff08;change directory&#xff09; pwd 显示当前工作目录&#xff08;print working directory&#xff09; help 帮助 外部命令&#xff1a;独立于Shell解析器之外…

共谋合作,共赢未来 | 南方电讯与中兴通讯签署合作协议

3月4日&#xff0c;南方电讯与中兴通讯合作签约仪式在北京举行。中兴通讯政企业务总裁张雨&#xff0c;南京普天常务副总经理、南方电讯董事长贾昊雯见证签约&#xff0c;中兴通讯副总裁张继军、中兴通讯多媒体视讯产品总经理刘群&#xff0c;南方电讯总经理杨志伟、南方电讯视…

产业链上下游持续利好 氧化物固态电解质市场前景广阔

产业链上下游持续利好 氧化物固态电解质市场前景广阔 氧化物固态电解质为固态电池电解质市场主流产品&#xff0c;指以氧化物为基材制成的固态电解质。氧化物固态电解质具有化学稳定性好、机械稳定性佳、热稳定性好、离子电导率高等优势&#xff0c;可用于制造氧化物固态电池。…

大唐杯学习笔记:Day6

1.1小区选择 一、概述 1.UE在RRC_IDLE和RRC——INACTIVATE状态下进行的过程&#xff1b; 2.UE首先需要完成PLMN的选择,在已选择的PLMN上寻找合适的小区,获取合适的服务,监听控制信道,这个过程即小区选择过程&#xff1b; 3.根据小区重选准则,UE寻找其他更适合的小区进行小区…

Android使用WebView打开网页链接(内嵌H5网页)的两种方式之一

发布Android应用&#xff0c;除了用原生开发外&#xff0c;更多是采用内嵌H5网页的方式来做&#xff0c;便于更新以及多平台使用。 一、第一种方式是直接通过WebView打开外部H5链接。 新建Android工程 直接创建一个工程&#xff0c;点击运行就可以了&#xff0c;打开是个空页…

vue3中的生命周期有哪些和怎么使用?

目录 前言&#xff1a; 正文&#xff1a; 总结: 前言&#xff1a; Vue.js 3是Vue.js框架的最新主要版本&#xff0c;引入了一些重大的改变和增强。在Vue 3中&#xff0c;由于Composition API的引入&#xff0c;生命周期钩子被替换为生命周期函数。 正文&#xff1a; 以下是…

CentOS7部署SonarQube 9.9.4 LTS

文章目录 下载地址前置条件安装sonarqube创建用户解压修改sonar.properties配置文件 启动sonarqube开启防火墙端口启动报错访问SonarQube安装汉化包 安装sonar-scanner 下载地址 社区稳定版本 版本依赖关系 Prerequisites and overview (sonarsource.com) 前置条件 JDK11安…