AutoMapper - cartographie de l'enfant collections dans le viewmodel

J'ai un viewmodel qui doit afficher un certain IEnumerable champ que le point-virgule séparées zone de texte. Au début, je pensais de l'aide DefaultModelBinder pour le transformer, mais j'ai eu de la difficulté à penser la manière de l'atteindre dans les deux directions (dto <-> viewmodel).

Surnoms est le domaine que je suis en train de l'affichage d'une zone de texte séparés par des point-virgules.

public class Parent
{
    public IEnumerable<Child> Children { get; set; }
}

public class Child
{
    public IEnumerable<string> Nicknames { get; set; }
}

J'ai donc décidé d'essayer AutoMapper, j'ai créé deux Viewmodel:

public class ParentViewModel
{
    public IEnumerable<ChildViewModel> Children { get; set; }
}

public class ChildViewModel
{
    public string Nicknames { get; set; }
}

Ensuite, j'ai créé des mappages, comme pour les enfants (omis de l'autre -, la conversion par souci de concision)

Mapper.CreateMap<Child, ChildViewModel>().ForMember(
d => d.Nicknames, o => o.ResolveUsing<ListToStringConverter>().FromMember(s => s.Nicknames);

Ensuite, pour le parent, a créé un naïf carte (encore une fois, omis l'autre sens)

Mapper.CreateMap<Parent, ParentViewModel>();

J'ai vraiment attendu l'enfant mappages de se produire automatiquement, mais ils ne le font pas, j'ai déjà créé trop de "bon" code pour résoudre un problème très simple qui, dans tous les autres simples/les anciens non-MVC environnement, je me serais fait un il y a longtemps 🙂 Comment puis-je procéder et dire AutoMapper de transformer les enfants sans écrire un autre "membre enfant "resolver".

Ai-je overthought cet et il y a un moyen plus simple?

Merci!

OriginalL'auteur Madd0g | 2011-11-25