¿Cómo hacer que AutoMapper trunque cadenas según el atributo MaxLength?

¿Cómo hacer que AutoMapper trunque cadenas según el atributo MaxLength?

No estoy seguro de que sea un buen lugar para poner esa lógica, pero aquí hay un ejemplo que debería funcionar en su caso (AutoMapper 4.x):Mapeo personalizado con AutoMapper

En este ejemplo, estoy leyendo un MapTo personalizado propiedad en mi entidad, podría hacer lo mismo con MaxLength .

Aquí un ejemplo completo con la versión actual de AutoMapper (6.x)

class Program
{
    static void Main(string[] args)
    {
        Mapper.Initialize(configuration =>
            configuration.CreateMap<Dto, Entity>()
                .ForMember(x => x.Name, e => e.ResolveUsing((dto, entity, value, context) =>
                {
                    var result = entity.GetType().GetProperty(nameof(Entity.Name)).GetCustomAttribute<MaxLengthAttribute>();
                    return dto.MyName.Substring(0, result.Length);
                })));

        var myDto = new Dto { MyName = "asadasdfasfdaasfasdfaasfasfd12" };
        var myEntity = Mapper.Map<Dto, Entity>(myDto);
    }
}

public class Entity
{
    [MaxLength(10)]
    public string Name { get; set; }
}

public class Dto
{
    public string MyName { get; set; }
}