2017-02-07 3 views
0

У меня есть сильфон функции, которая возвращает список динамического объектаполя для отображения полей между списком динамического и списком класса с Automapper

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; 

     } 

, а также иметь класс

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

Я использую AutoMapper .5.2.0. Я хочу сопоставить динамический список со списком testclass класс. Может ли кто-нибудь привести пример, как это сделать?

ответ

0

Очевидно, мы не можем использовать MapFrom, но ResolveUsing работы:

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();