Automapper: Ignorar a condición de

¿Es posible ignorar el mapeo de un miembro dependiendo del valor de una propiedad de origen?

Por ejemplo si tenemos:

public class Car { public int Id { get; set; } public string Code { get; set; } } public class CarViewModel { public int Id { get; set; } public string Code { get; set; } } 

Estoy buscando algo así como

 Mapper.CreateMap() .ForMember(dest => dest.Code, opt => opt.Ignore().If(source => source.Id == 0)) 

Hasta ahora, la única solución que tengo es usar dos modelos de vistas diferentes y crear diferentes asignaciones para cada uno.

La función Ignorar () es estrictamente para los miembros que nunca mapea, ya que estos miembros también se omiten en la validación de la configuración. Comprobé un par de opciones, pero no parece que un solucionador de valores personalizado haga el truco. En cambio, veré cómo agregar una opción de configuración Saltar condicional, como:

 Mapper.CreateMap() .ForMember(dest => dest.Code, opt => opt.Condition(source => source.Id == 0)) 

Me encontré con un problema similar, y aunque esto sobrescribirá el valor existente para dest.Code con null, podría ser útil como punto de partida:

AutoMapper.Mapper.CreateMap().ForMember(dest => dest.Code,config => config.MapFrom(source => source.Id != 0 ? null : source.Code));