AutoMapper を使用して DataServiceCollection を文字列のリストにマップし、逆のマッピングも作成しようとしています。このような特殊なコレクションを別のコレクションにマップする方法についてのアイデアはありますか?
Mapper.CreateMap<DataServiceCollection<LocationCountyValue>, List<string>>();
AutoMapper を使用して DataServiceCollection を文字列のリストにマップし、逆のマッピングも作成しようとしています。このような特殊なコレクションを別のコレクションにマップする方法についてのアイデアはありますか?
Mapper.CreateMap<DataServiceCollection<LocationCountyValue>, List<string>>();
カスタム型コンバーターを作成できます。
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>();
Thiago 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 }));
});