Во время операции отображения во время выполнения (например, когда вы используете ResolveUsing или пользовательский TypeConverter) возможно ли получить классы контейнеров (или, по крайней мере, типы) членов источника и назначения?
Я знаю, что когда вы отображаете один объект на другой, объекты не обязательно должны быть членами какого-либо "родительского" или "контейнерного" объекта, но я говорю о ситуации, когда AutoMapper рекурсивно копирует комплекс объект.
Вот пример:
Здесь я копирую (или, по крайней мере, настраиваю) автомобили и лодки типа "А" в "вид Б".
public class VehicleCopyProfile : AutoMapper.Profile
{
public VehicleCopyProfile()
{
this.CreateMap<CarA, CarB>();
this.CreateMap<BoatA, BoatB>();
this.CreateMap<WindshieldA, WindshieldB>(
.ConvertUsing((s, d, resContext) =>
{
// *** How can I tell if s is coming from a Car or a Boat? ***
});
}
}
// Cars & Boats each have a Windshield
public class CarA
{
public WindshieldA Windshield {get;set;}
}
public class BoatA
{
public WindshieldA Windshield {get;set;}
}
public class WindshieldA
{
public string Name {get;set;}
}
public class CarB
{
public WindshieldB Windshield {get;set;}
}
public class BoatB
{
public WindshieldB Windshield {get;set;}
}
public class WindshieldB
{
public string Name {get;set;}
}