Clonagem de objetos utilizando ValueInjecter

Tiago Ávila
Sep 6, 2018 · 2 min read

Quando trabalhamos com mapeamento de objetos em nossas aplicações, é comum ocorrer de precisarmos mapear uma propriedade para uma outra propriedade com o mesmo nome, mas com tipos diferentes.

Por exemplo, há um objeto com uma propriedade chamada Enderecos que é do tipo List<Endereco> e é necessário mapear esta propriedade para um outro objeto que também tenha uma propriedade chamada Enderecos, mas que é do tipo List<EnderecoDto>.

Após pesquisar bastante, fiz algumas alterações no CloneInjection do ValueInjecter para fazer esta clonagem.

Vamos ao exemplo.

Suponhamos que temos uma API e não queremos expor nossos objetos de domínio, então criamos DTO’s para serem utilizadas nas chamadas de nossa API.

Baseado nisso vamos mapear a classe Pessoa para PessoaDto.

Ao tentar fazer o mapeamento, repare que todas as propriedades foram clonadas, menos a lista Enderecos.

Para resolvermos isto vamos criar uma nova classe, que conterá o código para realizar o mapeamento conforme precisamos, segue seu código:

Agora basta executarmos o mapeamento novamente, só que agora na seguinte forma:

Agora a lista Enderecos também foi clonada.

Caso tenham alguma dúvida ou sugestão não deixe de comentar.

O código da aplicação de exemplo está no GitHub, neste link.

Espero ter ajudado. Abraços!

Code Expert

Empresa especializada em consultoria e desenvolvimento de sistemas. Trabalhamos com as tecnologias mais recentes do mercado. Temos uma vasta experiência com integrações para Marketplaces de e-commerce (B2W, Cnova, Walmart, Mobly, Dafiti, Carrefour).

Tiago Ávila

Written by

Desenvolvedor/Consultor Freelancer .NET apaixonado por tecnologia

Code Expert

Empresa especializada em consultoria e desenvolvimento de sistemas. Trabalhamos com as tecnologias mais recentes do mercado. Temos uma vasta experiência com integrações para Marketplaces de e-commerce (B2W, Cnova, Walmart, Mobly, Dafiti, Carrefour).

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade