Autopper конвертировать typeof объекта в enum - PullRequest
0 голосов
/ 11 декабря 2018

Я хотел бы использовать Automapper для указания столбца, используя ForMember (?) Как значение перечисления типа объекта, который отображается.

Например, у меня есть

class base
class A : base
class B : base

enum objTypeEnum
{
    istypebase,
    istypea,
    istypeb
}

base содержит свойство

objTypeEnum TypeEnum;

. Во время сопоставления я хочу разрешить тип сопоставляемого объекта со свойством TypeEnum:

.ForMember (dest => dest.TypeEnum, opt => opt.MapFrom ())

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

1 Ответ

0 голосов
/ 13 декабря 2018

Да, вы можете ForMember метод, и вы определяете выражение, где аргументом является source.Поэтому используйте источник, чтобы указать, что вы хотите установить в свойстве destination.

.ForMember(dest => dest.TypeEnum, 
           option => option.MapFrom(source => {
                // some logic here based on source object to convert it to enum
                // for sample:
                if (source.Prop == null)
                    return TypeEnum.A;
                else
                    return TypeEnum.B;
           }))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...