public class Source
{
public int Value1 { get; set; }
public int Value2 { get; set; }
}
public class Destination
{
public int Value { get; set; }
}
public class ValueResolver1 : IValueResolver
{
public int Resolve(Source source, Destination destination, int destMember, ResolutionContext context)
{
return source.Value1 + source.Value2;
}
}
public class ValueResolver2 : IValueResolver
{
public int Resolve(Source source, Destination destination, int destMember, ResolutionContext context)
{
return destMember * 2;
}
}
public class Program
{
static void Main(string[] args)
{
Mapper.Initialize(cfg => {
cfg.CreateMap()
.ForMember(dest => dest.Value, opt => opt.MapFrom()
.Chain());
});
var source = new Source { Value1 = 1, Value2 = 2 };
var destination = Mapper.Map(source);
Console.WriteLine(destination.Value); // Output: 6
}
}