0

AutoMapper を使用して DataServiceCollection を文字列のリストにマップし、逆のマッピングも作成しようとしています。このような特殊なコレクションを別のコレクションにマップする方法についてのアイデアはありますか?

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

2 に答える 2

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>();
于 2015-06-14T03:08:54.607 に答える
0

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 }));
    });
于 2015-06-15T12:54:04.423 に答える