top of page

Mapeamento de Objetos Simplificado com AutoMapper

O AutoMapper é uma biblioteca popular que permite a conversão automática de objetos de um tipo para outro. Isso é útil quando você precisa mapear objetos de domínio para DTOs (Data Transfer Objects) ou vice-versa, sem a necessidade de escrever código manualmente para cada propriedade. Neste exemplo, veremos como mapear um objeto de domínio para um DTO de forma automática.


Bibliotecas:


Para usar a biblioteca AutoMapper, instale o pacote NuGet no seu projeto:


Install-Package AutoMapper

Código de Exemplo:


using AutoMapper;
using System;

namespace AutoMapperExemplo
{
    public class Produto
    {
        public int Id { get; set; }
        public string Nome { get; set; }
        public decimal Preco { get; set; }
    }

    public class ProdutoDTO
    {
        public string Nome { get; set; }
        public decimal Preco { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            // Configurando o AutoMapper
            var config = new MapperConfiguration(cfg => cfg.CreateMap<Produto, ProdutoDTO>());
            var mapper = config.CreateMapper();

            // Criando um objeto Produto
            Produto produto = new Produto { Id = 1, Nome = "Laptop", Preco = 1500.99m };

            // Mapeando Produto para ProdutoDTO
            ProdutoDTO produtoDTO = mapper.Map<ProdutoDTO>(produto);

            Console.WriteLine($"Nome: {produtoDTO.Nome}, Preco: {produtoDTO.Preco}");
        }
    }
}

Explicação do Código:


Neste exemplo, criamos duas classes: Produto e ProdutoDTO. A classe Produto contém todas as propriedades, enquanto a classe ProdutoDTO contém apenas Nome e Preco. No método Main, configuramos o AutoMapper para mapear de Produto para ProdutoDTO. Depois, criamos um objeto Produto e o mapeamos automaticamente para um objeto ProdutoDTO. Por fim, exibimos os valores do ProdutoDTO no console.


Conclusão:


O AutoMapper simplifica o processo de conversão entre diferentes objetos, eliminando a necessidade de escrever código repetitivo para mapear propriedades. Ele é especialmente útil em cenários onde você precisa mapear objetos de domínio para DTOs em aplicações de camadas.


0 visualização

Posts recentes

Ver tudo

Dica C#: Default Interface Methods

Vamos falar sobre uma novidade do C# 12: Default Interface Methods. Esse recurso permite que interfaces contenham implementações de...

Dica C#: Global Using Directives

Vamos para uma dica do C# 10: Global Using Directives. Com essa funcionalidade, você pode definir diretivas using globais que se aplicam...

bottom of page