Automapper mit Basisklasse und verschiedenen Konfigurationsoptionen für Implementierungen
Ich habe zwei Klassen (MVC-Ansichtsmodell), die von einer abstrakten Basisklasse erben.
abstract class BaseModel { }
class Car : BaseModel
{
public string Speed { get; set; }
}
class Camper : BaseModel
{
public int Beds { get; set; }
}
und wollen AutoMapper mit Basisklasse konfigurieren, so etwas wie:
Mapper.CreateMap<BaseModel, DataDestination>();
var someObj = new DataDastination();
Mapper.Map(instanceOfBaseModel, someObj);
Hier erhalte ich eine Fehlermeldung, weil Automapper keine Konfiguration für Car oder Camper hat. Versucht, Automapper mit so etwas zu konfigurieren:
Mapper.CreateMap<BaseModel, DataDestination>()
.ForMember(dest => dest.SomeProp, mapper => mapper.MapFrom( .... ));
In MapFrom werden nur Eigenschaften der Basisklasse angezeigt! Wie konfiguriere ich Automapper für die Verwendung von BaseClass und eines bestimmten ForMember-Ausdrucks für Car und Camper? Wenn es sich beispielsweise um ein Auto handelt, ordnen Sie diese Eigenschaft diesem Objekt zu, und wenn es sich um ein Wohnmobil handelt, ordnen Sie diese Eigenschaft einem anderen Objekt zu.