AutoMapper - mapping-Kind-Sammlungen im viewmodel

Habe ich ein viewmodel, muss die Anzeige eines bestimmten IEnumerable Feld als Semikolon-getrennt textbox. Zuerst habe ich daran gedacht, mit DefaultModelBinder zu verwandeln, aber ich hatte Mühe zu denken, wie es zu erreichen in beide Richtungen (dto <-> viewmodel).

Spitznamen ist der Bereich, den ich versuche zu zeigen als ein Textfeld, durch Semikolon getrennt.

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

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

Also habe ich beschlossen, zu versuchen, AutoMapper, ich habe zwei ViewModels:

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

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

Dann habe ich Zuordnungen, wie diese für die Kinder (entfallen, die andere-Wege-Umstellung für die Kürze)

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

Dann für die Eltern, erstellt eine naive Karte (wieder entfallen, die andere-Weise)

Mapper.CreateMap<Parent, ParentViewModel>();

Ich wirklich erwartet, dass das Kind Zuordnungen erfolgen automatisch, aber Sie wissen nicht, ich habe bereits erstellte zu viel "richtigen" code zu lösen, um ein wirklich einfaches problem, das in jedem andere, einfachere/ältere nicht-MVC-Umfeld, würde ich mit einem vor langer Zeit 🙂 Wie kann ich Vorgehen und sagen, AutoMapper, verwandeln die Kinder, ohne zu schreiben eine andere "Kinder Mitglied resolver".

Habe ich overthought dies und gibt es einen einfacheren Weg?

Danke!

InformationsquelleAutor Madd0g | 2011-11-25
Schreibe einen Kommentar