雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

C#使用 AutoMapper 对象映射库快速入门使用教程

2024-06-18 56

AutoMapper 是一个对象到对象映射的库,它可以简化.NET应用程序中的数据传输对象(DTOs)和领域模型之间的转换。以下是AutoMapper的快速入门指南。

安装 AutoMapper

首先,你需要通过NuGet包管理器安装AutoMapper。在Visual Studio中,你可以通过以下步骤进行安装:

打开“解决方案资源管理器”。

右键点击你的项目,选择“管理NuGet包”。

在“浏览”标签中,搜索“AutoMapper”,然后选择合适的版本进行安装。

配置 AutoMapper

要使用AutoMapper,你需要创建一个映射配置。这通常在应用程序的启动过程中完成。

using AutoMapper;

// 假设有一个源类和目标类
public class SourceClass
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class DestinationClass
{
    public int Id { get; set; }
    public string FullName { get; set; }
}

// 在应用程序启动时配置映射
var configuration = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<SourceClass, DestinationClass>();
});

IMapper mapper = configuration.CreateMapper();

使用 AutoMapper

一旦配置了AutoMapper,你就可以使用它来执行映射操作。

// 创建源对象
var sourceObject = new SourceClass { Id = 1, Name = "John" };

// 执行映射操作
DestinationClass destinationObject = mapper.Map<DestinationClass>(sourceObject);

Console.WriteLine(destinationObject.FullName); // 输出: John

处理复杂类型和集合

AutoMapper 也可以处理复杂类型和集合。

// 映射集合
List<SourceClass> sourceList = new List<SourceClass>
{
    new SourceClass { Id = 1, Name = "John" },
    new SourceClass { Id = 2, Name = "Jane" }
};

List<DestinationClass> destinationList = mapper.Map<List<DestinationClass>>(sourceList);

foreach (var dest in destinationList)
{
    Console.WriteLine(dest.FullName);
}

// 映射复杂类型
public class SourceComplexObject
{
    public int Id { get; set; }
    public string Name { get; set; }
    public SourceClass SourceClass { get; set; }
}

public class DestinationComplexObject
{
    public int Id { get; set; }
    public string FullName { get; set; }
    public DestinationClass DestinationClass { get; set; }
}

var sourceComplexObject = new SourceComplexObject
{
    Id = 1,
    Name = "Complex",
    SourceClass = new SourceClass { Id = 1, Name = "Inner" }
};

DestinationComplexObject destinationComplexObject = mapper.Map<DestinationComplexObject>(sourceComplexObject);

Console.WriteLine(destinationComplexObject.DestinationClass.FullName); // 输出: Inner

AutoMapper 是一个强大的对象映射工具,它可以大大简化.NET应用程序中的数据转换。通过AutoMapper,你可以避免编写大量的样板代码来手动转换对象,从而提高代码的效率和可读性。随着对AutoMapper的深入学习,你将能够更有效地利用其功能来构建数据驱动的应用程序。

更新于:3个月前
赞一波!2

文章评论

全部评论