wszystkie wpisy

AutoMapper

Jednym z ćwiczeń praktycznych podczas “Zaawansowanego szkolenia z .NET 4.0” organizowanego przez Comarch (opis szkolenia tutaj), było napisanie własnego “AutoMappera” na kilka możliwych sposobów (refleksja, dynamic).

    A czym właściwie jest “AutoMapper”? AutoMapper to biblioteka, która udostępnia funkcjonalność automatycznego przepisywania wartości pól jednej klasy do drugiej. Potrzeba posiadania takiej funkcjonalności często zachodzi w sytuacji wykorzystywania w projekcie ORM. Zamiast pisać kod, służący do mapowania pól/właściwości z jednej klasy do drugiej, lepiej jest wykorzystać gotowe, darmowe rozwiązanie jakim jest AutoMapper, szczególnie, że jego wykorzystanie jest banalnie proste:

Najpierw, przed pierwszym użyciem tworzymy konfigurację mapowania (w jednym miejscu dla całego AppDomain). Najczęściej będzie to ‘global.asax’ lub ‘bootstraper’, ale może być też bezpośrednio przed metodą:

public static IMappingExpression<TSource, TDestination> CreateMap<TSource, TDestination>(); np.: Mapper.CreateMap<ClassA, ClassB>();

a nast. w kodzie produkcyjnym do mapowania wykorzystujemy metodę Map:

public static TDestination Map(object source); np: ClassA classAB = Mapper.Map(classAA);

//classAA will be copied to classAB and both will have values of classAA

Testowanie:

Najpierw musimy zainicjować konfigurację mapowania (np. poprzez wywołanie Bootstrapera), a nast. wywołać metodę:

Mapper.AssertConfigurationIsValid();

Linki:

Kod źródłowy znajduje się na github, a udost. jest na licencji MIT.

AutoMapper Getting-started Artykuł na Visual Studio Magizne opisujący bardziej zaawansowane przypadki użycia: link