Error accessing the CreateMap property of AutoMapper 6.2.2

2

I'm practicing on a simple example that I found in net on the subject. I just believe that it is in an older version of AutoMapper and therefore I can not access the CreateMap property when I call the Mapper class. It looks like it has changed the way the process is done.

publicclassPessoa{publicstringNome{get;set;}publicstringSobreNome{get;set;}}publicclassPessoaViewModel{publicstringNome{get;set;}publicstringSobreNome{get;set;}publicstringNomeCompleto{get{returnstring.Format("{0} {1}", Nome, SobreNome);
        }
    }
}

static void Main(string[] args)
{
    var pessoa = new Pessoa()
    {
        Nome = "João",
        SobreNome = "Silva"

    };

    var pessoaViewModel = new PessoaViewModel()

    Mapper.CreateMap<Pessoa, PessoaViewModel>();
    Mapper.Map(pessoa, pessoaViewModel);


    Console.WriteLine(pessoaViewModel.Nome);
    Console.WriteLine(pessoaViewModel.SobreNome);
    Console.WriteLine(pessoaViewModel.NomeCompleto);
    Console.ReadLine();
}
    
asked by anonymous 08.12.2017 / 22:39

1 answer

2

The CreateMap has been modified from Mapper, there are several ways to use it, I'll put the simpler one that solves your problem:  ( link )

Use:

    Mapper.Initialize(cfg => {
            cfg.CreateMap<Pessoa, PessoaViewModel>();
        });

It would look like this:

var pessoa = new Pessoa()
{
    Nome = "João",
    SobreNome = "Silva"
};

var pessoaViewModel = new PessoaViewModel();

Mapper.Initialize(cfg => {
    cfg.CreateMap<Pessoa, PessoaViewModel>();
});

Mapper.Map(pessoa, pessoaViewModel);

Console.WriteLine(pessoaViewModel.Nome);
Console.WriteLine(pessoaViewModel.SobreNome);
Console.WriteLine(pessoaViewModel.NomeCompleto);
Console.ReadLine();
    
08.12.2017 / 22:49