Простой способ перевести от DTO до Объекта и Объекта к DTO?

Это довольно неэффективно, и я не знаю ваш тип. Я предполагаю, что это символы, и вы можете заменить их другим типом, если я угадала неправильно.

// keys.ToList() means
List temp = new List();

foreach (char k in keys)
{
  temp.Add(k);
}

// .ForEach(k => actions.KeyUp(k)) means (in context of your temporary list)
foreach (char k in temp)
{
  actions.KeyUp(k);
}

Таким образом, метод KeyUp вашего объекта действий вызывается один раз для каждого ключа внутри ключей.

Причиной создания этого временного списка является то, что метод ForEach находится в списке, но не IEnumerable. В ответ на вопрос, который, несомненно, вызывает у вас мое предыдущее предложение, см. здесь .

Более эффективным (ЦП / память, время) способом достижения точно такого же результата (за исключением ненужного сбора мусора и задержек) будет

foreach (var k in keys) 
{ 
  actions.KeyUp(k); 
}

или, если вы предпочитаете его в одной строке: [ 118]

foreach (var k in keys) { actions.KeyUp(k); }

10
задан Steve Horn 15 October 2008 в 13:27
поделиться

4 ответа

Я недавно использовал AutoMapper , и он отлично работает.

3
ответ дан 4 December 2019 в 03:17
поделиться

Боль и риск

из получения/установки свойств вручную! Имейте Вас, попробовал это: http://dozer.sourceforge.net/.

Гибкая и настраиваемая платформа для перевода боба к бобу. Мог бы помочь!

3
ответ дан 4 December 2019 в 03:17
поделиться

У меня были инструменты использования успеха как XDoclet (хотя это не должно быть к трудно к сценарию) автоматически генерировать объекты передачи и простые переводы объекта.

Тем не менее, если Вы полагаете, что Ваши переводы Объекта достаточно просты быть сделанными с помощью отражения, существует ли причина, Вы не можете только передать объекты Объекта по проводу вместо DTO? Могло бы быть лучше иметь немного пользовательскую сериализацию, чем полноценный DTO.

0
ответ дан 4 December 2019 в 03:17
поделиться

используйте ValueInjecter, с ним вы можете сопоставить что угодно с чем угодно, например

 object <-> object
 object <-> Form/WebForm
 DataReader -> object

и у него есть классные возможности, такие как: сглаживание и разглаживание

загрузка содержит много примеров (примеры приложений для asp.net mvc, web-forms, winforms, unit tests)

0
ответ дан 4 December 2019 в 03:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: