AutoMapper 8.0 ConstructUsing критически важные изменения - PullRequest
0 голосов
/ 20 января 2019

Я использую AutoMapper в своем коде, и у меня есть универсальная оболочка, которая инициализирует маппер. Код работает долго без проблем. После обновления до AutoMapper 8 мои пользовательские конвертеры игнорируются. Ответственный код для настройки преобразователей следующий:

new MapperConfiguration(cfg =>
   cfg.CreateMap(mySource, myTarget).ConstructUsing(myConverter);

Этот фрагмент кода не собирается с AutoMapper 8, потому что я должен использовать выражения. Существует даже руководство по обновлению , но я не могу запустить его снова.

Я просто ожидал преобразовать его в

new MapperConfiguration(cfg =>
   cfg.CreateMap(mySource, myTarget).ConstructUsing(expr => myConverter);

но конвертер игнорируется.

1 Ответ

0 голосов
/ 28 января 2019

Я решил похожую проблему, выделив метод myConverter в отдельный класс, который наследуется от ITypeConverter:

public class MyConverter : ITypeConverter<MySourceType, MyDestinationType>
{
    public MyDestinationType Convert(MySourceType source, MyDestinationType destination, ResolutionContext context)
    {
        // Conversion logic here
    }
}

Затем вы можете заменить конфигурацию сопоставления следующим:

cfg.CreateMap(mySource, myTarget).ConvertUsing<MyConverter>();

или

cfg.CreateMap<MySourceType, MyDestinationType>().ConvertUsing<MyConverter>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...