DEV Community

Juarez Júnior for Develop4Us

Posted on • Edited on

Mapeamento Rápido e Eficiente de Objetos com Mapster

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

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay