Respuestas:
Use la sobrecarga que toma el destino existente:
Mapper.Map<Source, Destination>(source, destination);
Sí, devuelve el objeto de destino, pero eso es solo para otros escenarios oscuros. Es el mismo objeto.
Para que esto funcione, debe crear CreateMap para los tipos de origen y destino, incluso si son del mismo tipo. Eso significa que si quieres,
Mapper.Map<User, User>(user1, user2);
necesitas crear un mapa como este
Mapper.Create<User, User>()
Si desea utilizar un método de instancia de IMapper, en lugar del método estático utilizado en la respuesta aceptada, puede hacer lo siguiente (probado AutoMapper 6.2.2
)
IMapper _mapper;
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Source, Destination>();
});
_mapper = config.CreateMapper();
Source src = new Source
{
//initialize properties
}
Destination dest = new dest
{
//initialize properties
}
_mapper.Map(src, dest);
dest
ahora se actualizará con todos los valores de propiedad src
que compartió. Los valores de sus propiedades únicas seguirán siendo los mismos.