安装所需的包
Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection
配置AutoMapper
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
}
1
2
3
4
5
添加测试模型
public class QueueInfo
{
public string Id { get; set; }
public string QueueNumber { get; set; }
public DateTime CreateTime { get; set; }
}
1
2
3
4
5
6
7
8
9
public class QueueInfoCreateDto
{
public string Id { get; set; }
public string QueueNumber { get; set; }
public DateTime CreateTime { get; set; }
}
1
2
3
4
5
6
7
8
创建用户自定义Profile进行映射配置
public class QueueProfile:Profile
{
public QueueProfile()
{
CreateMap<QueueInfo, QueueInfoCreateDto>().ReverseMap();
}
}
1
2
3
4
5
6
7
ReverseMap表示双向映射。具体还有很多相关的api,详情可以进行官网查看。
进行测试
public class ValuesController : ControllerBase
{
//注册IMapper
private readonly IMapper _mapper;
public ValuesController(IMapper mapper)
{
_mapper = mapper;
}
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
QueueInfo info = new QueueInfo
{
Id = Guid.NewGuid().ToString(),
CreateTime = DateTime.Now,
QueueNumber = "123456789"
};
var dto = _mapper.Map<QueueInfoCreateDto>(info);
return Ok(dto);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
集合之间也可以进行映射。其他拓展请查看官网进行学习。
Automapper还可以在命名上进行自动转换。
例如
public class QueueInfo
{
public string Id { get; set; }
public string QueueNumber { get; set; }
public DateTime CreateTime { get; set; }
public QueueItem QueueItem { get; set; }
}
public class QueueItem
{
public string Id { get; set; }
public string Name { get; set; }
}
public class QueueInfoCreateDto
{
public string Id { get; set; }
public string QueueNumber { get; set; }
public DateTime CreateTime { get; set; }
/// <summary>
/// 这里使用的是QueueInfo中的QueueItem对象下的Name。进行映射的时候会自动映射
/// </summary>
public string QueueItemName { get; set; }
}
————————————————
版权声明:本文为CSDN博主「Jonny Lin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xhl_james/article/details/90511969
本博客Android APP 下载 |
![]() |
支持我们就给我们点打赏 |
![]() |
支付宝打赏 支付宝扫一扫二维码 |
![]() |
微信打赏 微信扫一扫二维码 |
![]() |
如果想下次快速找到我,记得点下面的关注哦!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!