Instalação e primeiro exemplo

1、Etapas de instalação pelo NuGet

  1. Crie um projeto de console (outros tipos de projeto também são possíveis; aqui usamos o console apenas para demonstração).
  2. No Gerenciador de Pacotes NuGet, pesquise por AutoMapper (autor: Jimmy Bogard).
  3. 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

  1. 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.
  2. CreateMap<TipoOrigem, TipoDestino>(): declara o mapeamento entre duas classes.
  3. Mapper.Map(objetoOrigem, objetoDestino): o objeto de destino deve estar previamente instanciado; não é possível passar null, caso contrário ocorrerá um erro.
  4. 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.Map não é mais recomendado. Deve-se usar injeção de dependência com IMapper. 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

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *