Сопоставление с различными свойствами на основе значения дискриминатора с использованием AutoMapper - PullRequest
3 голосов
/ 17 марта 2010

У меня есть один очень общий объект, который я хочу сопоставить типу назначения, используя AutomMapper, но я хочу сопоставить его с различными типами в зависимости от значения свойства в типе источника. Например, скажем, у меня есть:

public class Source
{
    public string Discriminator { get; }
    public string ValueA { get; }
    public string ValueB { get; }
}

public class Target
{
    public string Value { get; set; }
}

И я хочу сопоставить Source.ValueA с Target.Value, если Source.Discriminator == "A", и Source.ValueB с Target.Value, если Source.Discriminator == "B".

Возможно ли это с помощью AutoMapper?

1 Ответ

2 голосов
/ 17 марта 2010

Вы можете сделать что-то вроде этого:

Mapper.Map<Spurce, Target>().ForMember(x => x.Value, x => x.MapFrom(y => {
    if(y.Discriminator == "A")
        return y.ValueA;
    return y.ValueB;
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...