Можно ли использовать Automapper для привязки экземпляров классов к Winforms, и если да, то как? - PullRequest
5 голосов
/ 15 января 2012

У меня есть несколько объектов передачи данных (DTO), которые отображаются на структуры данных в двоичном файле. Некоторые поля в этих объектах отображаются в перечисления, например:

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

Другие поля - это просто числа или логические значения битов.

У меня есть метод расширения ToList() на Enum, который возвращает список пар ключ-значение из любого Enum, который можно вставить в раскрывающийся список в Form_Load:

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

В открытом свойстве Winform, которое возвращает экземпляр моего DTO, в геттере есть следующее:

dto.DataChecksumExistence 
    = (DataChecksumExistence)uxDataChecksumExistence.SelectedValue

и следующее в установщике:

uxDataChecksumExistence.SelectedValue = dto.ChecksumSize;

Умножьте этот код примерно на 50 полей, а затем умножьте его снова на количество форм, которые мне понадобятся в моем приложении (это десятки), и вы увидите мою дилемму.

Есть ли способ использовать Automapper для этого? Или было бы лучше кодировать его с помощью чего-то вроде T4 шаблонов ? Пожалуйста, предоставьте пример кода, если можете; Мне не нужна вся Библия, только несколько стихов, чтобы указать в правильном направлении.

1 Ответ

2 голосов
/ 20 января 2012

Это невозможно с помощью автоматического инструмента, но вы можете увидеть здесь (http://valueinjecter.codeplex.com) в демоверсии проекта winforms, который использует отображение, вы также можете увидеть скриншот демо на главной странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...