Emit уже не модно
От: IT Россия linq2db.com
Дата: 03.03.10 02:09
Оценка: 160 (14) :))) :))) :))) :)))
Поэтому пусть у них будут EmitMappers, а у нас будет ExpressionMapper

Использовать так:

var mapper = Map.GetObjectMapper<Source,Dest>(); // или  new ExpressionMapper<Source,Dest>().GetMapper();
var src    = new Source();
var dest   = mapper(src);

Мапит значения, объекты, списки объектов друг в друга с возможностью полного копирования, обратными ссылками и отслеживанем уникальности ссылок.

Параметры DeepCopy и HandleCrossReferences по-умолчанию включены. Так что если не нужно клонирование однотипных объектов и обработка ссылок, то выключать самостоятельно.

Производительность, конечно, процентов на несколько хуже, чем рукописный код, но всякие ЕмитМаперы могут идти тренироваться дальше.
Если нам не помогут, то мы тоже никого не пощадим.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.