AutoMapper один и тот же источник, один и тот же тип назначения - PullRequest
0 голосов
/ 06 ноября 2018

Я хочу использовать Automapper с одинаковым типом источника и назначения. Для каждого случая:

  • Я хочу иметь возможность сопоставлять все свойства, которые соответствуют выражению регулярного выражения
  • Отображать только свойства, соответствующие другому выражению регулярного выражения

Например, когда я делаю первый случай, я бы использовал ConvertUsing, который делает:

source.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public)
            .Where(p => Regex.IsMatch(p.Name, @"^(Baseline|Actual)Month\d{2}(Dollars|Hours|Statistics)$"))

Однако во втором случае я хочу, чтобы он выполнял только те свойства, которые начинаются с Baseline, или свойства, начинающиеся с Actual, а не обе группы. Я хотел бы иметь два отдельных профиля, как мне кажется, и иметь возможность заставить Mapper.Map идти по правильному пути.

Если я создаю Интерфейс для базовых значений и Интерфейс для фактических значений, я могу сделать что-то вроде этого:

var destination = Mapper.Map<IBaseline>(source);

...

var destination = Mapper.Map<IActual>(source);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...