Всем добрый вечер. У меня старый проект, в котором не было automapper'a. Сейчас я добавляю его.
Ранее, за маппинг отвечал следующий класс и метод:
internal static class PaginatedListExtensions
{
internal static PaginatedDto
return new PaginatedDto
Собственно при маппинге можно было просто передать параметр IEnumerable
return affiliates.ToPaginatedDto(
affiliates.Select(af => af.ToAffiliateDto()));
Однако теперь я пытаюсь использовать automapper.
Вот моя регистрация:
Mapper.CreateMap(typeof(PaginatedList<>), typeof(PaginatedDTO<>))
.ConvertUsing(typeof(PaginatedListDTOConverter<>));
Вот мой конвертер
public class PaginatedListDTOConverter
return new PaginatedDTO
PageIndex = paginatedList.PageIndex,
PageSize = paginatedList.PageSize,
//Others
};
}
}
Стандартное использование, которое фактически не работает без передачи внешнего параметра IEnumerable
var dest = Mapper.Map
Первая часть вопроса в том, нормальна ли такая реализация маппинга generic классов?
А вторая часть - самая главная, как возможно передать при маппинге параметр IEnumerable
Ответ
У меня в свое время была та же задача, в итоге решил использовать параметризированные обертки (самописные, по сути упрощенные ваши старые маппинги) над AutoMapper'ом. Потому что штатный способ выглядит неочень:
public class PaginatedListDTOConverter
var dest = Mapper.Map
Комментариев нет:
Отправить комментарий