2015-06-12 6 views
0

Я пытаюсь использовать AutoMapper для сопоставления DataServiceCollection со списком строк, а также для создания обратного сопоставления. Любые идеи о том, как сопоставить специализированную коллекцию, подобную этой, с другой?AutoMapper DataServiceCollection to List <string>

Mapper.CreateMap<DataServiceCollection<LocationCountyValue>, List<string>>(); 
+0

Какой код вы в настоящее время используется для сопоставления двух? –

ответ

0

Благодаря Тиаго Sa я создал отображение в обоих направлениях, как так:

Mapper.CreateMap<DataServiceCollection<CountyValue>, List<string>>() 
    .ConvertUsing((src) => { return src.Select(c => c.Value).ToList(); }); 

Mapper.CreateMap<List<string>, DataServiceCollection<CountyValue>>() 
    .ConvertUsing((src) => 
    { 
     return new DataServiceCollection<CountyValue>(
      src.Select(c => new CountyValue() { Value = c })); 
    }); 
1

Вы можете создать собственный тип преобразователя:

public class DataServiceCollectionToStringList : ITypeConverter<DataServiceCollection<LocationCountyValue>, List<string>> { 
    public List<string> Convert(ResolutionContext context) { 
     var sourceValue = (DataServiceCollection<LocationCountyValue>) context.SourceValue; 

     /* Your custom mapping here. */ 
    } 
} 

Затем создать карту с ConvertUsing:

Mapper.CreateMap<DataServiceCollection<LocationCountyValue>, List<string>>() 
     .ConvertUsing<DataServiceCollectionToStringList>();