top of page

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

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"));
        }
    }
}

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<T> 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.


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