Как игнорировать свойства определенного типа при использовании Automapper? - PullRequest
0 голосов
/ 19 февраля 2019

Давайте предположим, что у меня есть два типа:

class Type1
{
    public int Prop1 { get; set; }
    public string Prop2 { get; set; }
    public string Prop3 { get; set; }
}

class Type2
{
    public int Prop1 { get; set; }
    public string Prop2 { get; set; }
    public TypeToIgnore Prop3 { get; set; }
}

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

Внутри класса, производного от Profile, я мог бы добавить Ignore для каждого члена, который мне не нужен.я не хочу отображаться, как это:

CreateMap<Type2, Type1>().ForMember(x => x.Prop3, y => y.Ignore());

Или я мог бы использовать IgnoreMapAttribute для свойств, которые нужно игнорировать, но, учитывая, что в рабочем коде у меня их много, есть лигораздо более простой способ игнорировать некоторые конкретные типы?

1 Ответ

0 голосов
/ 19 февраля 2019

Вы можете использовать ShouldMapProperty в вашей конфигурации:

 cfg.ShouldMapProperty = p => p.PropertyType != typeof(string);

Официальные документы по этому здесь .Оригинальный запрос функции по-настоящему.

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