Mapster 可能是 .NET 领域性能最好的对象映射框架 —— Mapster - 明志唯新 MapsterMapper/Mapster: A fast, fun and stimulating object { get; set; } public DateTime UpdateTime { get; set; } public string Address { get; set; }} Mapster 程序员千万不要用AutoMapper或者Mapster_哔哩哔哩_bilibili 我比较推荐的是使用源码生成的方式,并且充分控制转换方式。 Mapster 有 CodeGen 的配置方式,但是感觉有点复杂了。真正的源码生成形式,还在路上。 Source Generators with IMapper Interface · Issue #622 · MapsterMapper/Mapster 发现 mapperly 可以符合需求 mapperly
然后再来看一看,咱们今天要介绍的主角:Mapster。 不知道有多少同学听过它?应该很少吧,这一点从百度搜索也可以看出来: ? 额………………好像差距有点大哈。 来自 “dudu” 大佬去年的一篇文章: EF Core 相关的千倍性能之差: AutoMapper ProjectTo VS Mapster ProjectToType。 是的,后来我采用了Mapster,很早之前就已听闻该工具,但是一直没有对比着使用过它。 (Name里面加上"_Mapster"后缀)。 小试牛刀 当然,上面的例子只是一个很基础的类型,但是我们经常会遇到类型里面拥有另外的类型,这种嵌套关系能行吗? 因为……您命名规范了,根本都不用写配置,Mapster会自动完成映射。
Mapster 介绍 Mapster 是一个开源免费(MIT license)、快速、高性能、灵活且易于使用的 .NET 对象映射库,用于在 .NET 用程序中进行对象之间的转换和映射操作,大幅减少手动赋值带来的重复代码 开源地址:https://github.com/MapsterMapper/Mapster 在线文档:https://github.com/MapsterMapper/Mapster/wiki 安装 Mapster 相关包 方式一、NuGet 包管理器安装 在 NuGet 包管理器中搜索:Mapster 和 Mapster.DependencyInjection 安装: Mapster 核心功能包 Mapster.DependencyInjection 依赖注入集成包 方式二、.NET CLI 安装 dotnet add package Mapster --version 7.4.0 #核心功能包 dotnet add package Mapster.DependencyInjection ); // 注册 Mapster 服务 builder.Services.AddMapster(); // 注册 Mapster 映射规则 MapsterConfig.Register(); 基础映射一行代码搞定
:); } 使用 Mapster: 在 中,使用 Mapster 的 static 方法执行对象映射:Program.csAdapt // Configure Mapster mapping rules 但是,Mapster 具有以下优点: Mapster 在速度和内存使用方面表现更好。 根据早期版本 6.0 的官方性能对比表,Mapster 在处理速度和内存消耗方面都优于 AutoMapper。 这是因为 Mapster 使用预编译策略,允许 Mapster 在编译时生成映射代码,从而避免了运行时反射的开销。这使其在处理大型数据集时具有性能优势。 Mapster 注意事项和建议 使用 Mapster 时,请考虑以下建议: 适度使用: Mapster 功能强大,但并非每个场景都是必需的。在某些情况下,手动映射可能更清晰、更高效。 虽然 AutoMapper 提供的功能比 Mapster 更多,但在合适的场景中,Mapster 更轻、更高效、更容易学习。
Master官网:https://github.com/MapsterMapper/Mapster 一、对象映射master的使用 1.安装包 Mapster 2.基本使用 先定义两个一样的类sourceObject string Address { get; set; } public List<int> Age { get; set; } } 2.1 普通做法 using ConsoleTest; using Mapster sourceObject.Address; destObject.Age = sourceObject.Age; 2.2 基本映射之映射到新对象 using ConsoleTest; using Mapster public List<int> Age { get; set; } } 3.1 直接在 TypeAdapterConfig 配置对象的映射关系 using ConsoleTest; using Mapster .Map(dest => dest.Address, src => src.Name + src.Address); } } 2、使用 using ConsoleTest; using Mapster
GitHub开源地址:https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectMonthly.md Mapster 项目简介: Mapster 是一个开源免费(MIT license)、快速、高性能、灵活且易于使用的 .NET 对象映射库,用于在 .NET 用程序中进行对象之间的转换和映射操作,大幅减少手动赋值带来的重复代码 项目源码地址: https://github.com/MapsterMapper/Mapster 项目详细介绍:https://mp.weixin.qq.com/s/QFEbHE2EWzzZN9VvnUwD4A
核心技术 后端 .NET8、Abp.vNext、Jwt、Serilog、Autofac、Mapster、SqlsugarCore、Quartz.Net等。
在 .NET 9 中使用 Mapster 快速、高效的实现对象映射 https://www.cnblogs.com/Can-daydayup/p/19153572 本文介绍了如何在ASP.NET Core 9.0 Web API中使用Mapster实现对象映射。 Mapster是一个开源的.NET对象映射库,使用简单且高效。文中详细描述了Mapster的安装方法,包括通过NuGet包管理器和.NET CLI安装。 作者提供了源对象和目标对象的示例代码,展示了如何通过Mapster快速完成映射,降低人为错误和维护成本。整体内容具有较强的实用性和清晰度。
Mapster:最快的对象映射器之一 var dto = user.Adapt<UserDto>(); 一行代码。零配置。闪电般快速。 因为Mapster使用编译时代码生成,而AutoMapper基于运行时反射 • 支持LINQ投影、嵌套映射等 适用场景:当你在10+个DTO和领域实体间映射,想要干净快速的转换而不需要臃肿的配置时 ️
mongoProxy.BatchAddAsync(SmsList); } 项目相关开源框架 EasyNetQ EasyNetQ.DI.Microsoft Sikiro.Nosql.Mongo log4net Mapster Sikiro.Nosql.Mongo 这个是我自己针对mongo驱动的常用的基础操作的封装库 源码地址:https://github.com/SkyChenSky/Sikiro.Nosql.Mongo Mapster https://github.com/MapsterMapper/Mapster 全局异常日志记录 public class GolbalExceptionAttribute : ExceptionFilterAttribute
,分布式缓存、分布式事务等 项目地址 Github https://github.com/zhontai/Admin.Core 技术栈 dotnet7 FreeSql Autofac CAP Mapster ControllersWithViews MVC urls 启动地址 http://*:8000 corUrls 跨域 [] assemblyNames 程序集名称 ZhonTai.Admin Mapster
基于.NET8+Abp.vNext+Autofac+Mapster+SqlsugarCore+Serilog+Jwt+Quartz.Net+echarts+vue3+nginx实现的前后端分离的、最新的高效率后端微服务系统 基于.NET8+MVC+Autofac+Mapster+FluentValidation+sqlsugar+MySQL+Postgresql+SqlServer+Redis实现的使用简单、高扩展的单体博客网站系统
核心技术 后端 .NET8、Abp.vNext、Jwt、Serilog、Autofac、Mapster、SqlsugarCore、Quartz.Net等。
Mapster:简化DTO和Entity之间的转换。
开源地址:https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetWeekly.md 在 .NET 9 中使用 Mapster 本文我们的主要内容就是讲解如何在 ASP.NET Core 9.0 Web API 项目中使用 Mapster 快速、高效的实现对象映射。
接口文档一览 项目地址 Github https://github.com/zhontai/Admin.Core 技术栈 dotnet7 FreeSql Autofac CAP Mapster ControllersWithViews MVC urls 启动地址 http://*:8000 corUrls 跨域 [] assemblyNames 程序集名称 ZhonTai.Admin Mapster
分布式缓存、分布式事务等 接口文档一览 项目地址 Github https://github.com/zhontai/Admin.Core 技术栈 dotnet7 FreeSql Autofac CAP Mapster Controllers ControllersWithViews MVC urls 启动地址 http://*:8000 corUrls 跨域[] assemblyNames 程序集名称 ZhonTai.Admin Mapster
}, true)//true是自动映射其他属性,匿名对象需要手动 .ToList(); //Mapster 004DTO { name=x.Name, books = x.books.Adapt<List<BooksDTO>>() //导航对象用 Mapster
日志管理系统 Sentry.io Loggly.com Elmah.io 模板引擎 Razor DotLiquid Scriban Fluid 实时通信 SignalR 对象映射 AutoMapper Mapster
日志管理系统 Sentry.io Loggly.com Elmah.io 模板引擎 Razor DotLiquid Scriban Fluid 实时通信 SignalR 对象映射 AutoMapper Mapster