1、NuGet安装步骤
- 新建控制台项目(其他项目类型也可以,控制台仅做演示)
- 在NuGet包管理器搜索 AutoMapper(作者Jimmy Bogard)
- 点击安装;要匹配项目.NET框架版本选择对应包版本,版本不匹配会安装失败

包管理器控制台命令
Install‑Package AutoMapper
2、创建实体类
class Person
{
public int Age { set; get; }
public string Name { set; get; }
public decimal Salary { set; get; }
public bool Sex { set; get; }
public DateTime Birthday { set; get; }
}
class People
{
public int Age { set; get; }
public string Name { set; get; }
public decimal Salary { set; get; }
public bool Sex { set; get; }
public DateTime Birthday { set; get; }
}Code language: JavaScript (javascript)
3、示例
class Program
{
static void Main(string[] args)
{
// ①初始化映射配置:创建 Person → People 的映射关系
Mapper.Initialize(m => m.CreateMap<Person, People>());
// ②实例化源对象Person
Person p = new Person()
{
Age = 12,
Name = "Tom",
Birthday = DateTime.Now,
Sex = true,
Salary = 10000
};
// 目标对象不能为null,需要先实例化
People peo = new People();
// ③执行映射,把源对象p的值拷贝到peo
Mapper.Map(p, peo);
// ④读取映射之后的结果
Console.WriteLine(peo.Name);
Console.ReadKey();
}
}Code language: JavaScript (javascript)
关键要点
Mapper.Initialize:全局做映射规则注册,程序启动执行一次即可,不要反复写在循环里面。CreateMap<源类型,目标类型>():声明两个类之间的映射。Mapper.Map(源对象, 目标对象):目标对象必须已经实例化,不能传null,否则报错。- 约定规则:属性名称、类型一致,就会自动复制,不需要额外配置。
版本提醒:AutoMapper 10+不再推荐静态
Mapper.Initialize / Mapper.Map,改用DI注入IMapper;上面代码只适合老版本学习。
和手写赋值对比
- 手写:
peo.Name=p.Name; peo.Age=p.Age;……,字段越多,样板代码越多。 - AutoMapper:只需要声明映射关系,自动拷贝全部同名属性。
Previous: 什么是AutoMapper
Next: 配置Profile