Automapper автоматически разрешает правильный подкласс для сопоставления?

Учитывая следующие типы источников:

public class BaseViewModel
{
   public string Prop1 { get; set; }
}

public class FirstViewModelImpl : BaseViewModel
{
   public string Prop2 { get; set; } 
}

public class SecondViewModelImpl : BaseViewModel
{
   public string AnotherProp { get; set; }
}

И следующие типы назначения

public class BaseDto
{
   public string Prop1 { get; set; }
}

public class FirstDtoImpl : BaseDto
{
   public string Prop2 { get; set; } 
}

public class SecondDtoImpl : BaseViewModel
{
   public string AnotherProp { get; set; }
}

Со следующими сопоставлениями:

Mapper.CreateMap<FirstViewModelImpl,FirstDtoImpl>();
Mapper.CreateMap<SecondViewModelImpl,SecondDtoImpl>();

Могу ли я сделать следующее (тривиальный пример) - учитывая, что на самом деле я не знать тип модели просмотра до времени выполнения?

BaseViewModel myViewModel = GetAViewModelFromSomewhere();
FirstDtoImpl dto = (FirstDtoImpl)Mapper.Map<BaseViewModel,BaseDto>(myViewModel);

Я все равно пробую это сейчас!

9
задан Rob Stevenson-Leggett 28 April 2011 в 13:47
поделиться