2012-03-16 14 views
14

Zakładając obiekty jesteś mapowania ze AutoMapper nie wymagają niestandardowych mapowania, jest tam kiedykolwiek punkt w ten sposób:AutoMapper - dlaczego warto korzystać z mapy nad DynamicMap?

Mapper.CreateMap<Src, Dest>(); 
// .... 
Mapper.Map(SrcObject, DestObj); 

Jeśli nie są wymagane żadne niestandardowe odwzorowania, czy powyższe podejście zyskać nic ponad to używając DynamicMap bez potrzeby wcześniejszej konfiguracji?

Mapper.DynamicMap(SrcObject, DestObj); 

rozumiem, że DynamicMap jest wymagane kiedy mapowanie typów anonimowych, ale pytam o to, czy DyanmicMap jest coraz nie preferowanej dla typów statycznych, które nie wymagają niestandardowych mapowania.

Odpowiedz

16

Dawno ja ostatnio używany Automapper, ale jeśli dobrze pamiętam:

Aby korzystać Map, trzeba wyraźnie określić te mapy najpierw poprzez CreateMap. Następnie możesz sprawdzić konfigurację, dzwoniąc pod numer AssertConfigurationIsValid.

Dzieje się to tuż po uruchomieniu aplikacji, zamiast napotykać na błąd w połowie wykonywania (biorąc pod uwagę, że tworzenie mapowań i sprawdzania poprawności przy starcie, co jest zalecane).

Również niektóre typy nie pasują do 1: 1, więc warto podać dokładne odwzorowania, nie będąc pewnym, czy korzystasz z Map, które wprowadziłeś ręcznie, faktycznie, ale uważam, że tak nie jest.
Właśnie sprawdziłem, DynamicMap wraca na istniejące mapy w aktualnej wersji na github.

To również kwestia wydajności od DynamicMap używa odbicie w większym stopniu niż metoda Map, skoro już podano konfigurację odwzorowania, a większość z nich nie musi bee stwierdził już w locie. Nie jestem pewien, czy teraz nowa wersja Automappera wykonuje buforowanie w tym zakresie.

+0

+1 - ahh, widzę, że istnieje 'Mapper.AssertConfigurationIsValid();' - cokolwiek innego poza starterami? :) –

Powiązane problemy