Necesito ayuda con una asignación especial con AutoMapper. Quiero asignar una colección de objetos a una colección de cadenas.AutoMapper: asignación de una colección de objetos a una colección de cadenas
así que tengo una etiqueta ClassD
public class Tag
{
public Guid Id { get; set; }
public string Name {get; set; }
}
Que en un modelo que tengo un IList de esta clase. Ahora quiero asignar el nombre a una colección de cadenas.
Ése es cómo definir la regla de asignación:
.ForMember(dest => dest.Tags, opt => opt.ResolveUsing<TagNameResolver>())
Y aquí está mi ValueResolver:
protected override string ResolveCore(Tag source)
{
return source.Name;
}
pero u .. saben que no trabajan ;-) Así que tal vez alguien sabe cómo hacerlo es correcto y puede ayudarme.
THX mucho
Ene
Sooo .. u quería más detalles .. aquí u conseguirlo .. pero tengo acortarlo;)
lo que el modelo:
public class Artocle
{
public Guid Id { get; set; }
public string Title {get; set; }
public string Text { get; set; }
public IList<Tag> Tags { get; set; }
}
Y el modelo Tag puede ver arriba.
Quiero asignarlo a un ArticleView ... necesito el modelo de etiqueta solo para un contexto comercial, no para el resultado.
Así que aquí es el modelo de vista i necesidad de mapear:
public class ArticleView
{
public Guid Id { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public IList<string> Tags { get; set; } // The mapping problem :-)
}
así que tengo un programa previo de las asignaciones. Mi Mapeo se ve así:
Mapper.CreateMap<Article, ArticleView>()
.ForMember(dest => dest.Tags, opt => opt.ResolveUsing<TagNameResolver>())
Y mapa que manuelly con un método especial
public static ArticleView ConvertToArticleView(this Article article)
{
return Mapper.Map<Article, ArticleView>(article);
}
¿Puede proporcionar más información sobre las clases de origen y destino? –
Así que eso es todo lo que hago :) Espero que mi edición pueda ayudar :) – Smokefoot