He estado revisando la documentación de AutoMapper para intentar encontrar una solución recomendada pero no he podido encontrarla.Asignar una propiedad a un elemento de colección
Digamos que tengo una clase como la siguiente
public class Foo
{
public string Note { get; set; }
}
esta clase se rellena desde el cliente y se asigna a la clase de objeto siguientes dominio
public class Bar
{
public IList<Note> Notes { get; set; }
}
donde Note es
public class Note
{
public string Text { get; set; }
// other properties excluded for brevity
}
Me gustaría asignar la propiedad de cadena Note
en Foo
, en primer lugar a la propiedad Text
en una nueva instancia de Note
y luego añada Note
a la colección en Bar
. Estoy usando un ValueResolver
para realizar la primera parte de esta operación (mapeo de la cadena a una nueva instancia de Note
), pero no estoy seguro acerca de cómo proceder con la segunda parte (asignar ese elemento a un elemento en una colección).
¿Cuál es la forma más limpia de hacer esto?
La barra es un objeto de dominio poblado de una fuente de datos. Creo que esto se encargará de mapear a una nueva instancia de objeto de dominio, pero ¿manejará el caso donde el objeto de dominio se rellena desde el origen de datos y puede que ya contenga elementos en la colección y me gustaría agregar un elemento a esa colección? –
Edité mi respuesta con una opción para usar AfterMap. Alternativamente, puede usar un convertidor de tipo personalizado si las cosas se vuelven demasiado complicadas: http://automapper.codeplex.com/wikipage?title=Custom%20Type%20Converters – PatrickSteele
The Map After funcionó bien, muchas gracias por apuntarme en la dirección correcta :) –