Mapeamento Rápido e Eficiente de Objetos com Mapster

Juarez Júnior - Nov 3 - - Dev Community

Mapster é uma biblioteca de mapeamento de objetos em .NET que oferece alta performance e flexibilidade, similar ao AutoMapper, mas com menor overhead e maior controle. Ele permite a conversão rápida entre diferentes tipos de objetos, útil em cenários onde você precisa mapear classes de entidades para DTOs (Data Transfer Objects) ou vice-versa. O Mapster é leve e fácil de usar, suportando mapeamentos simples, complexos e projeções personalizadas. Neste exemplo, vamos configurar o Mapster para mapear dados de uma entidade para um DTO.

Bibliotecas:

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

Install-Package Mapster
Enter fullscreen mode Exit fullscreen mode

Código de Exemplo:

using Mapster;
using System;

namespace MapsterExemplo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Criando uma instância da entidade Produto
            var produto = new Produto
            {
                Id = 1,
                Nome = "Notebook",
                Preco = 3500.99M
            };

            // Configurando o Mapster
            MapsterConfig.ConfigurarMapeamentos();

            // Mapeando para o DTO ProdutoDTO usando Mapster
            var produtoDto = produto.Adapt<ProdutoDTO>();

            // Exibindo os dados mapeados no console
            Console.WriteLine($"ProdutoDTO: Id={produtoDto.Id}, Nome={produtoDto.Nome}, Preço={produtoDto.PrecoFormatado}");
        }
    }

    // Classe de entidade Produto
    public class Produto
    {
        public int Id { get; set; }
        public string Nome { get; set; }
        public decimal Preco { get; set; }
    }

    // Classe de DTO ProdutoDTO
    public class ProdutoDTO
    {
        public int Id { get; set; }
        public string Nome { get; set; }
        public string PrecoFormatado { get; set; }
    }

    // Configurando o mapeamento para formatar o preço
    public class MapsterConfig
    {
        public static void ConfigurarMapeamentos()
        {
            TypeAdapterConfig<Produto, ProdutoDTO>.NewConfig()
                .Map(dest => dest.PrecoFormatado, src => src.Preco.ToString("C2"));
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Explicação do Código:

Neste exemplo, criamos uma classe de entidade Produto e uma classe DTO ProdutoDTO. O Mapster é utilizado para mapear automaticamente os dados de Produto para ProdutoDTO. No mapeamento, a propriedade PrecoFormatado é configurada para exibir o preço no formato de moeda (C2). O método Adapt do Mapster é usado para realizar o mapeamento de forma simples e direta. O resultado é exibido no console com os dados formatados.

Conclusão:

O Mapster oferece uma solução eficiente e flexível para o mapeamento de objetos em .NET, sendo uma alternativa de alto desempenho ao AutoMapper. Sua configuração é simples, mas permite personalizações poderosas, tornando-o ideal para converter classes de domínio em DTOs e vice-versa.

Código fonte: GitHub

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player