Картирование объектов - PullRequest
       12

Картирование объектов

4 голосов
/ 04 августа 2010

Что является лучшим решением для сопоставления объекта класса с легким объектом класса на примере:

У клиента к CustomerDTO оба имеют одинаковые имена свойств, я думал о лучшем оптимизированном решении для сопоставления между ними, я знаюрефлексия сильно замедляет меня, и создание методов для каждого отображения занимает много времени, так что любая идея?

заранее спасибо.

Ответы [ 4 ]

7 голосов
/ 04 августа 2010
2 голосов
/ 04 августа 2010

Если отражение слишком сильно замедляет работу, попробуйте Fasterflect: http://www.codeproject.com/KB/library/fasterflect_.aspx

Если вы используете механизм кэширования, он не намного медленнее, чем рукописный код.

1 голос
/ 04 августа 2010

Я играл с этим и имею следующие наблюдения.Должен ли Клиент наследовать от CustomerDTO или читать / писать в CustomerDTO?Я обнаружил, что некоторые генераторы DTO генерируют только тупые коллекции массивов фиксированного размера для векторов элементов данных в DTO, другие позволят вам указать LIST <> или некоторую такую ​​коллекцию.Коллекция высокого уровня должна появляться не в сериализованном DTO, а в эффектах, которые вы подходите.Если ваше решение добавляет высокоуровневые коллекции, то вы можете наследовать, если нет, то, вероятно, вы хотите читать / записывать в промежуточный DTO.

Я использовал буфер протокола и XSDObjectGenerator для моего поколения DTOразные времена!).

0 голосов
/ 16 апреля 2017

Новая альтернатива - UltraMapper .

Быстрее всего, что я пробовал до февраля 2017 года. (В 2 раза быстрее, чем Automapper в любом сценарии)

Это более надежно , чем AutoMapper (без StackOverflows, без пределов глубины, без пределов самообращения).

UtraMapper - это всего 1300 строк кода вместо более чем 4500+ Automapper, и его легче понять, поддерживать и вносить в проект.

Он активно развивается, но на данный момент нуждается в обзоре сообщества . Попробуйте и оставьте отзыв на странице проекта!.

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