1、Etapas de instalação pelo NuGet
- Crie um projeto de console (outros tipos de projeto também são possíveis; aqui usamos o console apenas para demonstração).
- No Gerenciador de Pacotes NuGet, pesquise por AutoMapper (autor: Jimmy Bogard).
- Clique em Instalar. Escolha uma versão do pacote compatível com a versão do .NET do seu projeto. Se a versão não for compatível, a instalação falhará.

Comando para o Console do Gerenciador de Pacotes
Install‑Package AutoMapper
2、Criação das classes de entidade
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、Exemplo
class Program
{
static void Main(string[] args)
{
// ① Inicialização da configuração de mapeamento: criar o mapeamento de Person → People
Mapper.Initialize(m => m.CreateMap<Person, People>());
// ② Instanciar o objeto de origem Person
Person p = new Person()
{
Age = 12,
Name = "Tom",
Birthday = DateTime.Now,
Sex = true,
Salary = 10000
};
// O objeto de destino não pode ser nulo e precisa ser instanciado previamente
People peo = new People();
// ③ Executar o mapeamento: copiar os valores do objeto de origem p para peo
Mapper.Map(p, peo);
// ④ Ler o resultado após o mapeamento
Console.WriteLine(peo.Name);
Console.ReadKey();
}
}Code language: JavaScript (javascript)
Pontos principais
Mapper.Initialize: registra as regras de mapeamento globalmente. Deve ser executado uma única vez na inicialização do programa, e não dentro de loops.CreateMap<TipoOrigem, TipoDestino>(): declara o mapeamento entre duas classes.Mapper.Map(objetoOrigem, objetoDestino): o objeto de destino deve estar previamente instanciado; não é possível passar null, caso contrário ocorrerá um erro.- Regra de convenção: se o nome e o tipo da propriedade forem iguais, a cópia será automática, sem necessidade de configuração extra.
Observação de versão: a partir do AutoMapper 10, o uso estático de
Mapper.Initialize / Mapper.Mapnão é mais recomendado. Deve-se usar injeção de dependência comIMapper. O código acima serve apenas para estudo em versões antigas.
Comparação com a atribuição manual
- Manual:
peo.Name=p.Name; peo.Age=p.Age;……, quanto mais campos, mais código repetitivo. - AutoMapper: basta declarar o relacionamento de mapeamento para copiar automaticamente todas as propriedades com o mesmo nome.
Instalação e primeiro exemplo
Previous: O que é AutoMapper
Next: Configurar Profile