AutoMapper官方文档(三)【约定】

AutoMapper 使用手册以及扩展 可以看到,映射后,dto 中两个元素的类型,一个是 EmployeeDto,一个是 EmployeeDto2,即实现了父类映射到父类,子类映射到子类。/// 数据源的成员变量的命名规则。/// 数据源的成员变量的命名规则。/// new PascalCaseNamingConvention() 帕斯卡命名规则(每个单词的首字母大写) 阅读详情

有条件的对象映射器

条件对象映射器根据源和目标类型之间的条件创建新的类型映射。

var config = new MapperConfiguration(cfg => {
    cfg.AddConditionalObjectMapper().Where((s, d) => s.Name == d.Name + "Dto");
});

成员配置

成员配置就像配置,但是你可以完全控制什么要用和不用。

var config = new MapperConfiguration(cfg => { cfg.AddMemberConfiguration(); });

AddMemberConfiguration()从空白的开始。 默认情况下在配置中应用的所有内容都是以开始的。

命名约定

AddMemberConfiguration().AddMember<NameSplitMember>()得到你默认的命名约定功能.

可以通过在参数中传递一个lambda来覆盖源和目标成员的命名约定。 SourceExtentionMethods也可以在这里设置。

如果你没有设置任何东西,AutoMapper将使用DefaultMember,它只会使用属性名来检查。

PS:如果你没有设置这个Flattening对象将被禁用。

替换字符

AddMemberConfiguration().AddName<ReplaceName>(_ => _.AddReplace("Ä", "A").AddReplace("í", "i"));

识别 前/后缀

AddMemberConfiguration().AddName<PrePostfixName>(_ => _.AddStrings(p => p.Prefixes, "Get", "get").AddStrings(p => p.DestinationPostfixes, "Set"));

属性支持

AddMemberConfiguration().AddName<SourceToDestinationNameMapperAttributesMember>(); * 目前一直在

查找属性/字段的SourceToDestinationMapperAttribute实例,并调用用户定义的isMatch函数来查找成员匹配项。

MapToAttribute是其中的一个,它将根据提供的名称匹配属性。

public class Foo
{
    [MapTo("SourceOfBar")]
    public int Bar { get; set; }
}

获取AutoMapper默认值

AddMemberConfiguration().AddMember<NameSplitMember>().AddName<PrePostfixName>(_ => _.AddStrings(p => p.Prefixes, "Get"))

如果不使用AddMemberConfiguration(),则由Configuration设置默认值。

扩展能力

每个AddName和AddMember类型都基于一个接口ISourceToDestinationNameMapper和IChildMemberConfiguration。你可以通过lambda语句参数来创建自己的类,并通过lambda语句参数来配置它们的属性,所以你可以对AutoMapper解析属性映射的方式进行微调。

多个配置

每个配置都是自己的一套规则,所有的规则都必须通过才能说一个属性被映射。如果你做了多个配置,它们是完全独立的。

简介

这些可以添加到配置文件以及ConfigurationStore。

每个配置文件规则是相互分开的,不会共享任何条件。如果从一个配置文件的AddConditionalObjectMapper生成一个映射,则只有该配置文件的AddMemberConfiguration可用于解析属性映射。

例子

下面显示的是用于制定传输到数据传输对象和从数据传输对象传输数据的两个配置文件。每一个都是孤立的映射的一种方式,并明确规定了每一方的规则。

//用NameSplitMember压平
//仅适用于以Dto结尾的目标名称相同的类型
//只应用Dto修补程序到源属性
public class ToDTO : Profile
{
    protected override void Configure()
    {
        AddMemberConfiguration().AddMember<NameSplitMember>().AddName<PrePostfixName>(
                _ => _.AddStrings(p => p.Postfixes, "Dto"));
        AddConditionalObjectMapper().Where((s, d) => s.Name == d.Name + "Dto");
    }
}

//不平坦的对象
//只适用于具有以Dto结尾的源名称相同的类型
//只应用Dto修补程序到目标属性
public class FromDTO : Profile
{
    protected override void Configure()
    {
        AddMemberConfiguration().AddName<PrePostfixName>(
                _ => _.AddStrings(p => p.DestinationPostfixes, "Dto"));
        AddConditionalObjectMapper().Where((s, d) => d.Name == s.Name + "Dto");
    }
}
AutoMapper的使用 1.包含AutoMapper.dll 在工程的Lib文件夹下 2.AutoMapper用法 - Qi Fei - 博客园.png 参考图片 3.工程为简单的代码演示,有注释,请大家参考 立即下载

相关推荐

VS2022离线安装总闪退?可能是这个--noWeb参数没加对(完整参数指南)

本文深入解析了VS2022离线安装过程中常见的闪退问题,指出核心原因往往在于命令行参数使用不当,特别是`--noWeb`参数。文章提供了完整的参数使用指南和实战解决方案,包括证书处理、安装器文件修复及自动化脚本,帮助用户彻底解决离线部署中的验证失败与闪退难题。

weixin_28842269的博客 755

AutoMapper官方文档(一)【入门】

什么是AutoMapper?AutoMapper是一个对象与对象的映射器。对象-对象映射通过将一种类型的输入对象转换为不同类型的输出对象来工作。让AutoMapper感兴趣的是,它提供了一些有趣的约定,从而弄清楚如何将类型A映射到类型B.只要类型B遵循AutoMapper建立的约定,映射两种类型几乎就是零配置。为什么使用AutoMapper?映射代码很无聊。测试映射代码更无聊。 AutoMapper

极客神殿 8244

TCP/IP协议栈之LwIP(三)---网际寻址与路由(IPv4 + ARP + IPv6)

一、网际寻址原理 当网络设备地址总数并不是很多的情况下,有了唯一地址(比如MAC地址)就可以定位相互通信的主体。然而,当地址总数越来越多时,如何高效地从中找出通信的目标地址将成为一个重要的问题。为此人们发现地址除了具有唯一性还需要具有层次性。MAC地址虽然具有唯一性,但没有层次性,也即当网络设备增加到一定程度,需要将网络分成多个数据链路时,MAC地址无法跨链路寻址,是真正负责最终通信的地址。要实现跨局域网的网际寻址,就要靠具有层次性的网络IP地址实现了。

流云 6817

2.1配置(AutoMapper官方文档翻译)

automapper configuration

yan_yu_lv_ji的博客 653

浅析ArcGis中的软件——ArcMap、ArcScene、 ArcGlobe、ArcCatalog

ArcMap:是集空间数据显示、矢量数据编辑、冲突数据检查(拓扑检查)、查询检索(地理编码)、统计(字段属性表)、报表生成、空间分析(ArcGIS Spatial Analyst)和高级制图(制图表达)等众多功能干一体的桌面应用平台软件。而且提供所见即所得的符号编辑器,令用户可以随心所欲地生成任意复杂的点、线、面符号。所支持的空间数据格式包括Arclnfo coverages、ESRI shapefiles、ArcSDE lavers、DXF、DWG、DGN、常见的图像格式、GRIDs、TINs等。

lxlmycsdnfree的博客 6562

s9keaz128 UART Bootloader 单片机篇(上)

网络上充斥着各种各样的串口升级方案,基本都是基于Y-Mode协议下载。采用这种升级方案学习还是可以,用在产品上还是有点欠缺。如下载完成后,需要把时间发送到设备就不好搞了。如下这个设备返回的信息,最后一项就是固件更新时间。固件名称: KEA128编译时间固件版本: 1.0.3硬件版本: 1.0.3产品序列号功能名称: App固件更新时间串口升级演示视频。

一人科技 1795

1.1入门指南(AutoMapper官方文档翻译)

AutoMapper是一个对象-对象映射器。对象-对象映射的工作原理是将一种类型的输入对象转换为不同类型的输出对象。AutoMapper的有趣之处在于,它提供了一些有趣的约定,将如何将类型A映射到类型B的繁琐工作解决掉。只要类型B遵循AutoMapper的既定约定,映射两个类型几乎不需要任何配置。

yan_yu_lv_ji的博客 919

方案设计之亿级排行榜方案设计

该方案通过 “Redis Zset 为核心 + 分治策略为骨架 + 多级优化为细节”,在亿级用户场景下实现了:本质是将 “亿级大问题” 拆解为 “千万级小问题”,用分布式思想和精细化设计平衡性能、可用性与成本。

shine0312的专栏 1099

C#-对象映射器(一)-AutoMapper映射帮助类

一、AutoMapper简介1、什么是AutoMapper(官方文档地址:https://github.com/MapsterMapper/Mapster)  Mapster是一个高性能的用于对象映射的类库,同类型的产品还有AutoMapper。它提供了一系列的API和工具,以下为几个重要的类和接口: IMapping接...

weixin_30146085的博客 798

网络可视化工具netron详细安装流程

netron安装目录1.netron 简介2.不同操作系统下的安装使用方式2.1 在线版本:只要有浏览器就可以2.2 不同操作系统安装使用3.netron支持的网络框架4.netron测试演示 1.netron 简介 在实际的项目中,经过会遇到各种网络模型,需要我们快速去了解网络结构。如果单纯的去看模型文件,脑海中很难直观的浮现网络的架构。 这时,就可以使用netron可视化工具,可以清晰的看到每一层的输入输出,网络总体的架构,而且支持各种不同网络框架,简单好用。 2.不同操作系统下的安装使用方式 2.1

江南研习社 12万+

C#串口通信上位机开发实战:轻松实现硬件控制与数据交互

摘要:本文介绍如何使用C#开发串口通信上位机应用,实现与硬件设备(如传感器、PLC等)的数据交互。文章涵盖串口通信原理、开发环境配置、功能实现(串口连接管理、数据收发、实时显示)及UI设计,重点讲解SerialPort类的应用、多线程数据接收处理和错误优化。通过Windows Forms构建直观界面,帮助开发者快速掌握工业控制和自动化系统中的串口通信技术,为物联网和智能设备开发提供实用解决方案。全文约150字。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3028

AutoMapper入门

AutoMapper 是一个 .NET 类库,它能自动在两个类型之间做映射,尤其是当这些类型拥有相似属性时。它减少了手动编写的重复性劳动。set;set;set;set;set;set;可以直接通过 AutoMapper 在这两者之间做转换,而无需显式赋值。

R3333355726856的博客 1672

37.华为路由器:loopback(本地回环)接口的作用

本地环回接口(或地址),亦称回送地址(loopback address)。 此类接口是应用最为广泛的一种虚接口,几乎在每台路由器上都会使用。常见于如下用途: 1 作为一台路由器的管理地址 系统管理员完成网络规划之后,为了方便管理,会为每一台路由器创建一个loopback 接口,并在该接口上单独指定一个IP 地址作为管理地址 ,管理员会使用该地址对路由器远程登录(telnet ),该地址实际上起到了类似设备名称一类的功能。 但是通常每台路由器上存在众多接口和地址,为何不从当中随便挑选一个呢 ? 原因如下:由于

迷逝 3万+

关于AutoMapper

AutoMapper 是一个基于约定的对象 - 对象映射库,主要用于在不同对象类型之间自动映射属性值。它能根据配置的映射规则,将源对象的属性值填充到目标对象中,避免了手动编写大量繁琐的对象映射代码。

ly1h1的博客 1579

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

AutoMapper 10.0使用教程

这里有个目录什么是AutoMapper配置使用MapperConfiguration配置使用Profile Instances配置Naming Conventions(命名约定)Replacing characters (替换字符)Recognizing pre/postfixes 识别前/后缀Visibility 配置可见性Configuration compilation 配置编译Dependency Injection (依赖注入)Queryable Extensions 可查询扩展例子ASP.NET

码农01号的博客 1661

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

AutoMapper官方文档(十七)【配置】

创建一个MapperConfiguration实例并通过构造函数初始化配置:var config = new MapperConfiguration(cfg => { cfg.CreateMap<Foo, Bar>(); cfg.AddProfile<FooProfile>(); });MapperConfiguration实例可以静态存储在一个静态字段中,也可以存储在一个依赖注入容

极客神殿 3201

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Getting started · AutoMapper/AutoMapper Wiki

Getting started · AutoMapper/AutoMapper Wiki Getting started · AutoMapper/AutoMapper WikiGetting started New Page Edit Page Page Hi...

146

C# 一个对象映射的经典神器——AutoMapper

今天咱们来深入聊聊另一个对象映射的经典神器——AutoMapper。作为.NET生态中资历最老、使用最广泛的映射库,它有着独特的魅力和设计哲学。

ultramand的博客,重生之我在cad上二次开发猛猛敲C#代码~ 1310

automapper java 有什么_AutoMapper系列:介绍、使用

1.介绍AutoMapper是一个对象-对象映射器。对象-对象映射通过将一种类型的输入对象转换为另一种类型的输出对象来工作。使AutoMapper变得有趣的是,它提供了一些有趣的约定,以免去搞清楚如何将类型A映射为类型B。只要类型B遵循AutoMapper既定的约定,就需要几乎零配置来映射两个类型。2.使用nuget命令: Install-Package AutoMapper &&...

weixin_39980596的博客 734

AutoMapper开源项目FAQ

**AutoMapper** 是一个基于.NET平台的轻量级对象到对象映射库。它设计用于简化并自动化对象之间的转换过程,减少手动编码映射逻辑的需求。此项目由Jimmy Bogard发起,并采用MIT许可证进行分发。AutoMapper通过一系列约定及配置提供了一种优雅的方式来处理复杂的对象结构映射,特别是在Dtos(数据传输对象)和实体对象之间。 ### 主要编程语言 - **C#**: 作为....

gitblog_01017的博客 601

AutoMapper详解

适用于属性字段太多,且有规律时,减少映射规则的编写下面的代码我都验证了,确实是这样的//对 Source→Destination 的映射,验证目标成员(目标的所有成员必须被映射)//源有A1,A2 目标有A1,A2,A3,A4 --A3,A4没有被源进行映射,报错// 对 Source→Destination 的映射,验证源成员(源的所有成员必须被映射)//源有A1,A2,A3,A4,A5 目标有A1,A2,A3 --源的A4,A5 没有进行映射,报错。

m0_68206177的博客 1327

AutoMapper小结

一些orm框架,在用到Entity的时候有一些开源代码用到了automapper(如:nopcommence),将数据对象转成DTO。比如在ORM中,与数据库交互用的Model模型是具有很多属性变量方法神马的。而当我们与其它系统(或系统中的其它结构)进行数据交互时,出于耦合性考虑或者安全性考虑或者性能考虑(总之就是各种考虑),我们不希望直接将这个Model模型传递给它们,这时我们会创建一个贫血模型

不积跬步,无以至千里;不积小流,无以成江海 5095

对象映射从未如此简单!C#.NET AutoMapper 超详细教程

AutoMapper是一个开源的对象映射库,通过约定和配置自动实现对象属性转换,减少手动编码。它支持简单对象、集合、嵌套对象的映射,并提供自定义属性映射、条件映射、忽略属性等高级功能。通过Profile配置映射规则,注册到DI容器后即可注入使用。AutoMapper能有效解耦数据模型,简化DTO与实体间的转换,提升开发效率。其基于表达式树的预编译机制保证了运行时高性能。

tangPHP的博客 1529

.NetCore——AutoMapper基本使用

.NetCore——AutoMapper基本使用 一、介绍 官网解释: AutoMapper是一个对象-对象映射器。对象-对象映射通过将一种类型的输入对象转换为另一种类型的输出对象来工作。 使AutoMapper变得有趣的是,它提供了一些有趣的约定,以免去搞清楚如何将类型A映射为类型B。只要类型B遵循AutoMapper既定的约定,就需要几乎零配置来映射两个类型。简单来说就是偷懒用的。 官网地址:https://docs.automapper.org/en/stable/Getting-started.ht

qiaofan_乔凡的博客 1453

AutoMapper用法

AutoMapper是对象到对象的映射工具。在完成映射规则之后,AutoMapper可以将源对象转换为目标对象。 配置AutoMapper映射规则 Profile的用法 扁平化映射(Flattening) 指定映射字段(Projection) 验证配置项(Configuration Validation) 自定义解析器(Custom value resolvers) 自定义类型转换器(Custo...

Vincent_yuan1991的博客 613
上一篇: AutoMapper官方文档(二)【升级指南】
下一篇: AutoMapper官方文档(四)【扁平化(分割)映射】
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值