【5min+】 对象映射只有AutoMapper?试试Mapster

本文介绍了在.NET开发中除了常用的AutoMapper之外,还有Mapster作为对象映射工具的选择。Mapster提供了简单易用且无需预先配置的映射方式,只需一行代码即可完成对象转换。尽管AutoMapper在社区中有很高的知名度,但Mapster在某些场景下可能更胜一筹,例如在不需要配置或希望在任何地方配置映射的情况下。此外,文章提到Mapster在性能上可能优于AutoMapper,但具体差异需要实际测试验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列介绍

【五分钟的dotnet】是一个利用您的碎片化时间来学习和丰富.net知识的博文系列。它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net知识等等。
5min+不是超过5分钟的意思,"+"是知识的增加。so,它是让您花费5分钟以下的时间来提升您的知识储备量。

正文

一谈到如何在.Net中进行对象映射,可能大部分同学都会脱口而出:“使用AutoMapper!”。 是的,AutoMapper 是一个非常成熟的对象映射器。截至到写这篇文章,您能在Nuget上下载到的AutoMapper包的版本为:v9.0.0,而对应的 Github 的 star 已经高达7K。

对了,谈到AutoMapper就不得不谈起它的作者(之一):“JIMMY BOGARD”。也许您没有听过这个名字,但是您一定听过他的另一个作品:MediatR(在微软的官方示例EShop中也使用了MediatR)。同时,“JIMMY BOGARD” 也是提出“将领域事件附加在聚合根”上的人,为领域驱动设计(DDD)做出了很大的贡献。在微软官方文档中,您可以看到该处提及到了“JIMMY BOGARD”:

x

好吧,优秀的人总是优秀😭。还是回到今天的正文,对象映射工具。当然,对于AutoMapper大家可能再熟悉不过了,而且它的知名度和热度也居高不下,看一看百度搜索结果就知道了:

x

然后再来看一看,咱们今天要介绍的主角:Mapster。 不知道有多少同学听过它?应该很少吧,这一点从百度搜索也可以看出来:

x

额………………好像差距有点大哈。而且在这些搜索结果中,有用的信息只有那么几条,其中能看的文章就只有一条,而且还是出自于博客园。 来自 “dudu” 大佬去年的一篇文章: EF Core 相关的千倍性能之差: AutoMapper ProjectTo VS Mapster ProjectToType。 再来看一看Github的情况,距离我写这一篇稿子的时候,Star数只有 518 个。

x

一个契机

咱们先来回顾一下AutoMapper是怎么使用的:

现在有两个类,一个叫做MyEntity ,一个叫做 MyDto。 在咱们书写应用层代码的时候,将数据转换为Dto是很常见的一种操作,所以这也是我们需要对象映射器的原因。 假设,这两个类的结构是酱紫的:

public class MyEntity
{
   
   
    public string Name {
   
    get; set; }

    public int No {
   
    get; set; }
}

public class MyDto
{
   
   
    pub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值