安装和第一个例子

1、NuGet安装步骤

  1. 新建控制台项目(其他项目类型也可以,控制台仅做演示)
  2. 在NuGet包管理器搜索 AutoMapper(作者Jimmy Bogard)
  3. 点击安装;要匹配项目.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)

关键要点

  1. Mapper.Initialize:全局做映射规则注册,程序启动执行一次即可,不要反复写在循环里面。
  2. CreateMap<源类型,目标类型>():声明两个类之间的映射。
  3. Mapper.Map(源对象, 目标对象)目标对象必须已经实例化,不能传null,否则报错。
  4. 约定规则:属性名称、类型一致,就会自动复制,不需要额外配置。

版本提醒:AutoMapper 10+不再推荐静态Mapper.Initialize / Mapper.Map,改用DI注入IMapper;上面代码只适合老版本学习。

和手写赋值对比

  • 手写:peo.Name=p.Name; peo.Age=p.Age;……,字段越多,样板代码越多。
  • AutoMapper:只需要声明映射关系,自动拷贝全部同名属性。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注