2016-04-26 3 views
1

ich weiß, du dieseAutoMapper-Kontextwerte in AfterMap?

Mapper.CreateMap<Source, Dest>() 
    .ForMember(d => d.Foo, opt => opt.ResolveUsing(res => res.Context.Options.Items["Foo"]) 

Mapper.Map<Source, Dest>(src, opt => opt.Items["Foo"] = "Bar"); 

tun können, aber wie greifen Sie Kontextdaten in AfterMap()?

+0

Was meinst du mit Kontextdaten zu sagen? Kannst du ein Beispiel geben? – Fka

+0

Sieh dir meinen Beispielcode an, ich kann "Optionen" mit kontextuellen Daten in einem Wörterbuch übergeben -> Items ["Foo"] = someValue, erlaubt mir kontextuelle Daten zu übergeben, wenn ich konvertiere – Aviel

Antwort

1

Jetzt können Sie nicht. Aber das ist eine einfache Lösung, öffnen Sie ein GitHub-Problem und wir fügen es hinzu (für BeforeMap und AfterMap).

+0

Wurde das jemals implementiert? Dies wäre sehr nützlich für die Unterstützung mehrerer Client-Versionen, dh wenn Sie eine anforderungsspezifische "ClientVersion" übergeben müssen, die Sie nach dem Mapping möglicherweise ändern möchten. Die MVC-Controller müssten dann diese anforderungsspezifischen Daten an den Mapper übergeben, der ansonsten keine anforderungsspezifischen Daten/Header/etc kennt. – Marchy

+0

Danke für die Implementierung (getestet ab Version 6.1). AutoMapper ist großartig! =) – Marchy