0

I have bellow function which returns a list of dynamic object

public List<dynamic> getlist()
        {
            List<dynamic> d = new List<dynamic>();

            d.Add(new { Name = "A", Age = 12 });
            d.Add(new { Name = "B", Age = 10 });
            d.Add(new { Name = "C", Age = 15 });
            d.Add(new { Name = "D", Age = 18 });
            d.Add(new { Name = "E", Age = 17 });

            return d;

        }

and also have a class

 public class testclass
    {
        public string letter { get; set; }
        public Int64 frequency { get; set; }
    }

I use AutoMapper.5.2.0 .I want to map the dynamic list with the list of testclass class . can anybody give an example how to do this?

kuntal
  • 1,591
  • 2
  • 16
  • 36

1 Answers1

0

Apparently we can't use MapFrom, but ResolveUsing works:

Mapper.Initialize(cfg => cfg.CreateMap<dynamic, testclass>()
            .ForMember(dest => dest.letter, opt => opt.ResolveUsing(src => src.Name))
            .ForMember(dest => dest.frequency, opt => opt.ResolveUsing(src => src.Age)));

// Use the mapping
foreach (testclass a in Mapper.Map<List<testclass>>(getlist()))
{
    Console.WriteLine(a.letter);
}
Console.ReadKey();
ntohl
  • 2,067
  • 1
  • 28
  • 32