📅  最后修改于: 2023-12-03 15:27:24.800000             🧑  作者: Mango
Automapper 是一个 C# 映射库,允许您轻松映射对象之间的属性,减少手动编写重复的映射代码。
它可以用于简化数据访问层,将数据库对象映射到业务对象,或者将一个类的属性映射到另一个类的属性,支持快速、可靠的映射对象属性。
此处介绍的是第一个或默认的 C# AutoMapper 使用。
在 Visual Studio 中,可以通过 NuGet 下载和安装 AutoMapper。
打开 “工具” -> “NuGet 包管理器”->“管理解决方案的 NuGet 包...”,在“浏览”栏中单击查找“AutoMapper”,在“已安装”中安装所需版本。或者使用以下命令进行安装:
Install-Package AutoMapper
AutoMapper 需要创建一个映射配置,映射配置定义源对象和目标对象之间的属性映射。
using AutoMapper;
public class UserProfile : Profile
{
public UserProfile()
{
CreateMap<User, UserDto>();
}
}
在此示例中,我们将 User 映射到 UserDto。CreateMap
方法接受源类型和目标类型。一旦创建了映射配置,我们就可以将实例映射到目标类型。
var config = new MapperConfiguration(cfg =>
{
cfg.AddProfile<UserProfile>();
});
var mapper = config.CreateMapper();
var user = new User { FirstName = "John", LastName = "Doe" };
var userDto = mapper.Map<UserDto>(user);
我们首先创建一个 MapperConfiguration
对象,它使用我们之前创建的 UserProfile
。我们通过 CreateMapper
方法创建一个 IMapper
对象。我们可以使用 Map
方法将实例映射到目标类型。
完整的使用示例代码如下:
using AutoMapper;
using System;
namespace AutoMapperDemo
{
class Program
{
static void Main(string[] args)
{
var config = new MapperConfiguration(cfg =>
{
cfg.AddProfile<UserProfile>();
});
var mapper = config.CreateMapper();
var user = new User { FirstName = "John", LastName = "Doe" };
var userDto = mapper.Map<UserDto>(user);
Console.WriteLine($"First Name: {userDto.FirstName}, Last Name: {userDto.LastName}");
// Output: First Name: John, Last Name: Doe
}
}
public class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class UserDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class UserProfile : Profile
{
public UserProfile()
{
CreateMap<User, UserDto>();
}
}
}
Automapper 的最新版本可以在其官方仓库找到:
https://github.com/AutoMapper/AutoMapper
在本教程中,我们介绍了第一个或默认的 C# AutoMapper,安装步骤、创建映射配置、映射对象,覆盖了最基本的应用方法。使用 AutoMapper 可以大大简化您的代码,减少代码重复,提高代码重用性。