У меня есть следующий сценарий:
Исходный класс:
public class Source
{
public int? A { get; set; }
public int? B { get; set; }
public int? C { get; set; }
}
Класс назначения:
public class Destination
{
public int A { get; set; }
public bool AIsNull { get; set; }
public int B { get; set; }
public bool BIsNull { get; set; }
public int C { get; set; }
public bool CIsNull { get; set; }
}
Я бы хотел получить отображение из Source => Destion следующим образом:
- попытаться установить свойство назначения со связанным свойством источника (это можно сделать с помощью конвертера (реализующего ITypeConverter)
- после того, как свойство установлено, я хочу установить целевое свойство IsNull, связанное с исходным свойством.
РЕДАКТИРОВАТЬ, после некоторых исследований:
class Program
{
static void Main(string[] args)
{
var srcClass = new SourceClass { Value1 = 10, Value2 = null, Value3 = 20 };
Mapper.Initialize(cfg =>
{
cfg.ClearPrefixes();
cfg.RecognizePostfixes("IsNull");
cfg.CreateMap<SourceClass, TargetClass>();
});
var targetClass = Mapper.Map<SourceClass, TargetClass>(srcClass);
}
}
public class SourceClass
{
public int? Value1 { get; set; }
public int? Value2 { get; set; }
public int? Value3 { get; set; }
}
public class TargetClass
{
public bool Value1IsNull { get; set; }
public bool Value2IsNull { get; set; }
public bool Value3IsNull { get; set; }
}
и все же, волшебства не бывает для этого случая