首页 > 其他分享 >NET开发中合理使用对象映射库,简化和提高工作效率

NET开发中合理使用对象映射库,简化和提高工作效率

时间:2023-12-26 16:11:07浏览次数:36  
标签:映射 get 对象 工作效率 AutoMapper NET public

NET开发中合理使用对象映射库,简化和提高工作效率

 

思维导航

前言

在日常开发中,我们常常需要将一个对象映射到另一个对象,这个过程中可能需要编写大量的重复性代码,如果每次都手动编写,不仅会影响开发效率,而且当项目越来越复杂,庞大的时候还容易出现错误。为了解决这个问题,对象映射库就随之而出了,这些库可以自动完成对象之间的映射,从而减少了开发工作量,提高了开发效率。

使用对象映射库有哪些好处?

  • 减少开发工作量,提高开发效率。
  • 减少开发过程中的错误和bug。
  • 简化代码结构,提高代码可读性和可维护性。

AutoMapper对象映射库介绍

AutoMapper是一个流行的.NET对象映射库,它可以自动进行对象之间的转换和映射,极大地简化了开发人员在处理对象映射时的工作量。通过配置映射规则,开发人员可以快速定义对象之间的映射关系,从而避免了手动编写大量的映射代码。这样可以提高开发效率,减少出错的可能性,并使代码更加可维护和易读。

创建一个控制台应用

本文示例是以控制台为例子,创建一个名为AutoMapperTest的控制台:

AutoMapper包安装

管理NuGet程序包 搜索:AutoMapper 安装:

创建源对象和目标对象

接下来我们分别定义一个源对象和一个目标对象,它们拥有相同的属性。例如,我创建一个名为PersonInfo的源对象和一个名为PersonInfoDto的目标对象:

PersonInfo的源对象

    public class PersonInfo
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int Age { get; set; }
        public string Nationality { get; set; }
    }

PersonInfoDto的目标对象

    public class PersonInfoDto
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int Age { get; set; }
        public string Nationality { get; set; }
    }

配置AutoMapper映射规则

我们可以定义一个MappingProfile的映射配置文件,并在其中定义源类型和目标类型之间的映射关系。

    public class MappingProfile : Profile
    {
        public MappingProfile()
        {
            CreateMap<PersonInfo, PersonInfoDto>();
        }
    }

控制台执行对象映射

var configuration = new MapperConfiguration(cfg => {
    cfg.AddProfile<MappingProfile>();
    //或者下面这种方式
    //cfg.CreateMap<PersonInfo, PersonInfoDto>();
});
var mapper = configuration.CreateMapper();

var personInfo = new PersonInfo
{
    FirstName = "大东",
    LastName = "陈",
    Age = 18,
    Nationality = "中国"
};
var personInfoDto = mapper.Map<PersonInfoDto>(personInfo);

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看

标签:映射,get,对象,工作效率,AutoMapper,NET,public
From: https://www.cnblogs.com/sexintercourse/p/17928361.html

相关文章

  • 查看onnx模型结构-使用Netron模块
    查看onnx模型结构-使用Netron模块1安装$pipinstallnetron2可选-查看安装的路径$pipshownetron3查看onnx结构importnetron#�??�?ONNX模�??�??件�??路�?onnx_model_path=r'yolo5/yolov5n-seg_toXiaoLiu/model/yolov5n-seg.onnx'#�?�"�netron�?��?��?�??ONNX模�??net......
  • Kubernetes command、args的各种写法
    apiVersion:apps/v1kind:Deploymentmetadata:name:nginx-deploymentspec:selector:matchLabels:app:nginxstratgy:rollingUpdate:maxSurge:1maxUnavailable:1type:RollingUpdatereplicas:2#告知Deployment运行2......
  • Linux 配置.Net 7.0 运行环境
    运行命令dotnet--info,看看是不是成功安装了7.0.0第二步:配置守护进程1,在服务器根目录(/)下创建一个名/www/myweb的目录,用来存放我们的发布文件2,最好先把asp.netcore7测试项目发布后,上传到上面的目录中3,为使每次服务器重启能自动启动我们的应用程序和监测应用程序的运行状态,......
  • 使用kubeadm在Centos8上部署kubernetes1.18
    //查看系统版本cat/etc/centos-releaseCentOSLinuxrelease8.1.1911(Core)//如果系统环境为8.0(云服务器默认最大安装环境为8.0)使用如下命令进行升级操作sudodnfupdate-y//配置网络cat/etc/sysconfig/network-scripts/ifcfg-enp0s3//添加阿里源rm-rfv/etc/......
  • NetSuite 开发日记 —— 库存详细信息记录更改数量问题
    详细报错:"type":"error.SuiteScriptError","name":"USER_ERROR","message":"在更改数量之后,您仍需要重新配置库存详细信息记录。""type":"error.SuiteScriptError","name":"USER_ERROR","......
  • Json Schema简介和Json Schema的.net实现库 LateApexEarlySpeed.Json.Schema
    什么是JsonSchema?JsonSchema是一种声明式语言,它可以用来标识Json的结构,数据类型和数据的具体限制,它提供了描述期望Json结构的标准化方法。利用JsonSchema,你可以定义Json结构的各种规则,以便确定Json数据在各个子系统中交互传输时保持兼容和一致的格式。一般来说,系统可以自......
  • 《Kubernetes从入门到进阶》之一: 认识Kubernetes
    01容器技术在早期的传统架构中,应用程序是直接部署在物理机上的。在这种场景下,由于无法对程序的资源使用进行限制,容易出现不同程序争抢资源的问题,并且程序之间还可能互相影响。这使得往往需要按照应用来划分机器,并造成了较大的资源浪费。 后来,虚拟机(VM)的出现改变了这种现状。......
  • .net自带的树控件TreeView用法
    原文链接:https://blog.csdn.net/wenchm/article/details/133276828https://blog.csdn.net/xiaogongzhu001/article/details/131100371    TreeView控件(树控件)可以为用户显示节点层次结构,每个节点又可以包含子节点,包含子节点的节点叫父节点。就像在Windows操作系统的Wind......
  • .Net 利用Aspose.Words在上传word时将.doc转为.docx
    1、引用包Aspose.Words2、接口中使用:ListformFiles=new();foreach(IFormFileformFileinformCollection.Files){if(formFile.ContentType=="application/msword"){Streamfs=formFile.OpenReadStream();vardoc=newAspose.Words.Document(fs);Stream......
  • 关于NPOI word 异常解决NPOI.OpenXml4Net.Exceptions.OpenXML4NetRuntimeException:“
    NPOI.OpenXml4Net.Exceptions.OpenXML4NetRuntimeException:“Failtosave:anerroroccurswhilesavingthepackage:Mustsupportwriting源代码stringfileContent=File.ReadAllText(filePath,Encoding.Default);Dictionary<string,string>dic=......