2012-01-15 11 views
5

Mam wiele obiektów przenoszenia danych (DTO), które mapują struktury danych w pliku binarnym. Niektóre pola w tych obiektach mapować teksty stałe, takie jak ten:Czy Automapper może być użyty do powiązania wystąpień klas z WinFormami, a jeśli tak, to w jaki sposób?

public enum DataChecksumExistence 
{ 
    None = 0x00, 
    Eight_Bits = 0x01, 
    Sixteen_Bits = 0x02, 
    Thirty_Two_Bits = 0x03 
} 

Pozostałe pola są tylko liczby lub wartości logiczne bitowe.

Mam metodę rozszerzenia ToList() na Enum, która zwraca listę par klucz-wartość z dowolnego Enum, które mogą być nadziewane w rozwijanym w :

uxDataChecksumExistence.DataSource = typeof(DataChecksumExistence).ToList(); 

W własności publicznej Winform że zwraca instancję moim DTO, mam następujący w getter:

dto.DataChecksumExistence 
    = (DataChecksumExistence)uxDataChecksumExistence.SelectedValue 

i następujący w seter:

uxDataChecksumExistence.SelectedValue = dto.ChecksumSize; 

Pomnożyć ten kod przez około 50 pól, a następnie pomnożyć ponownie przez liczbę formularzy, których będę potrzebować w mojej aplikacji (jest ich dziesiątki), a zobaczysz mój dylemat.

Czy można w tym celu skorzystać z Automapper? A może lepiej byłoby kod-gen go z czymś takim jak T4 templates? Proszę podać przykładowy kod, jeśli możesz; Nie potrzebuję całej Biblii, tylko kilka wersetów, aby uzyskać wskazówkę we właściwym kierunku.

Odpowiedz

2

Z automapperem nie jest to możliwe, ale można zobaczyć tutaj (http://valueinjecter.codeplex.com) w projekcie Demo winforms, który wykorzystuje mapowanie, można również zobaczyć zrzut ekranu z demonstracją na stronie tytułowej.

Powiązane problemy