Automapper с базовым классом и различными вариантами конфигурации для реализации

У меня есть два класса (Модель представления MVC ), которая наследуется от одного абстрактного базового класса.

abstract class BaseModel { }

class Car : BaseModel 
{
    public string Speed { get; set; }
}

class Camper : BaseModel
{
    public int Beds { get; set; } 
}

и хотите настроить AutoMapper с базовым классом, например:

Mapper.CreateMap<BaseModel, DataDestination>();

var someObj = new DataDastination();
Mapper.Map(instanceOfBaseModel, someObj);

Здесь я получаю сообщение об ошибке, потому что Automapper не имеет конфигурации Car или Camper. Пытался настроить Automapper примерно так:

Mapper.CreateMap<BaseModel, DataDestination>()
   .ForMember(dest => dest.SomeProp, mapper => mapper.MapFrom(.... ));

В MapFrom я вижу только свойства базового класса! Как настроить Automapper для использования BaseClass и конкретного выражения ForMember для автомобилей и кемперов? Например, если это автомобиль, сопоставьте это свойство с этим, а если это автофургон, сопоставьте это свойство с другого места.

20
задан Hrvoje Hudo 29 June 2012 в 15:18
поделиться