2016-08-10 2 views
0

Gibt es eine Möglichkeit anzugeben, welche AfterMap-Funktion zuerst ausgeführt werden soll? Zum Beispiel habe ich diesen Code:Reihenfolge der AfterMap in Automapper

cfg.CreateMap<ClassA, ClassA_DTO>() 
       .AfterMap((source, dest) => ... 
       .AfterMap((source, dest) => ... 
       .AfterMap((source, dest) => ... 


//I need this aftermap to be executed first. 
cfg.CreateMap<ClassB, ClassB_DTO>().AfterMap((src, dest) => 
{ 
    foreach (var ... in ...) 
    { 

    } 
}); 

Aber das Problem ist, dass KlasseA enthält ClassB.

+0

Mit "Eltern" meinen Sie "Containing-Klasse" oder "Eltern-Klasse"? – stuartd

+0

Mein Fehler. Ich meine, dass ClassA ClassB – TjDillashaw

+1

enthält Wenn Sie diese Art der feinkörnigen Kontrolle benötigen, müssen Sie möglicherweise einen [benutzerdefinierten Typkonverter] verwenden (https://automapper.codeplex.com/wikipage?title=Custom%20Type%20Converters) – stuartd

Antwort

0

Nein, gibt es nicht, und ich werde es wahrscheinlich nicht hinzufügen. Es ist viel zu verwirrend. Ich bin mir nicht sicher, was Sie in Ihrem Mapping zu tun versuchen, aber diese vielseitige Konfiguration könnte ein guter Fall sein, um Dinge manuell zuzuordnen, was so klar und deutlich wie möglich ist.

Verwandte Themen